Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL-复制另一个表中的列//在树中查找族关系_Sql_Oracle - Fatal编程技术网

SQL-复制另一个表中的列//在树中查找族关系

SQL-复制另一个表中的列//在树中查找族关系,sql,oracle,Sql,Oracle,我目前正在尝试构建一个存储库表或找到一个替代解决方案,以便轻松识别某些元素之间的族关系 它基本上是一个树结构,在oracle sql数据库中有几个元素相互链接 每个元素至少有一个父元素,并且它们都由代码标识。一个元素的父代码在表中很容易访问 我一直在尝试使用以下代码将代码列复制到空存储库表中: UPDATE TARGET_TABLE SET TARGET_TABLE.CODE1 = (SELECT CODE1 FROM SOURCE_TABLE) INSERT INTO TARGET_TA

我目前正在尝试构建一个存储库表或找到一个替代解决方案,以便轻松识别某些元素之间的族关系

它基本上是一个树结构,在oracle sql数据库中有几个元素相互链接

每个元素至少有一个父元素,并且它们都由代码标识。一个元素的父代码在表中很容易访问

我一直在尝试使用以下代码将代码列复制到空存储库表中:

UPDATE TARGET_TABLE 
SET TARGET_TABLE.CODE1 =
(SELECT CODE1 FROM SOURCE_TABLE)


INSERT INTO TARGET_TABLE (CODE1)
SELECT CODE1 FROM SOURCE_TABLE;
我在执行这些请求时没有任何错误,但目标表中没有发生任何错误。。0行已更新

我一直在尝试在不创建新表的情况下执行此操作,并且我能够通过以下命令找到代码:

SELECT DAD_CODE1 FROM SOURCE_TABLE where 'CODE=1000' IN CODE; -- give 0900 as result, being the dad of 1000
SELECT DAD_CODE1 FROM SOURCE_TABLE where 'CODE=0900' IN CODE; -- give null if root
等等。。直到我到达根时得到NULL结果

或者反过来说:

SELECT CODE FROM SOURCE_TABLE WHERE '00001' IN DAD_CODE1 -- give 0100, among other children codes of this dad element 
SELECT CODE FROM SOURCE_TABLE WHERE '00100' IN DAD_CODE1 -- give null if no children
这是可行的,但我无法递归地构建它。 其目的是为了方便地找到其他数据处理的关系。

UPDATE语句将只更新已经存在的行,因此如果TARGET_表为空,则应该更新0行,因为没有要更新的行

INSERT语句将在目标_表中插入的行数与在源_表中插入的行数相同


祝你好运。

谢谢你的帮助。当我使用INSERT时,源_表中的所有行都不会复制到目标_表中。实际上,我有一条错误消息:无法在DB.TARGET\u TABLE.ID中插入NULL,这是因为TARGET\u TABLE中有一个名为ID的列,必须为该列指定一个值。通常,该字段的填充将使用触发器完成,触发器将从序列中获取值,但显然,对于您正在使用的数据库/表来说,这还没有完成。由于我没有访问您的数据库的权限,我真的无法就如何正确设置ID字段提供任何具体建议。如果这是工作或学校的问题,你可以试着问同事、其他学生或你的老师/教授。祝你好运。在我的数据库中工作的一种方法是在创建新表时直接添加列:创建表目标\u表作为SELECT CODE1,DAD\u代码来自源\u表;