Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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 如何为oracle多行插入生成GUI_Sql_Oracle_Insert_Guid - Fatal编程技术网

Sql 如何为oracle多行插入生成GUI

Sql 如何为oracle多行插入生成GUI,sql,oracle,insert,guid,Sql,Oracle,Insert,Guid,我必须在Oracle sql表中插入几行。像 insert into table (col1, col2, col_unique_guid) select col1, "bla", sys_guid() from source_table; 不幸的是,sys_guid()对于所有行都是相同的-是否有一种方法可以通过序列为每行插入单独的guid?我无法重现您的问题,但在某些情况下,oracle可能会“优化”查询中的函数调用,使该函数在查询执行期间只调用一次 通过编写包装器函数并将rownum传递

我必须在Oracle sql表中插入几行。像

insert into table (col1, col2, col_unique_guid) select col1, "bla", sys_guid() from source_table;

不幸的是,sys_guid()对于所有行都是相同的-是否有一种方法可以通过序列为每行插入单独的guid?

我无法重现您的问题,但在某些情况下,oracle可能会“优化”查询中的函数调用,使该函数在查询执行期间只调用一次

通过编写包装器函数并将rownum传递给它,可以强制Oracle为每一行调用函数:

CREATE OR REPLACE function get_my_guid(i number) return raw
is
begin
  return sys_guid();
end;
/
e、 g:


我无法重现您的问题,但在某些情况下,oracle可能会“优化”查询中的函数调用,使该函数在查询执行期间仅被调用一次

通过编写包装器函数并将rownum传递给它,可以强制Oracle为每一行调用函数:

CREATE OR REPLACE function get_my_guid(i number) return raw
is
begin
  return sys_guid();
end;
/
e、 g:


你读过这个吗?guid非常相似,但它们不同。只是为了确定,再检查一遍!在
col_unique_guid
上是否有唯一约束或主键?是否可以显示生成的结果集,结果与您所说的相同?@Ringelmann我在Oracle 12.2.0.1上看到了相同的Behvaior,它使用一个不太直接(但本质上相同)的语句插入表SELECT*FROM(…),其中在(…)中调用sys_guid()部分。我必须创建一个插入触发器来插入主键作为解决方法。你读过这个吗?guid非常相似,但它们不同。只是为了确定,再检查一遍!在
col_unique_guid
上是否有唯一约束或主键?是否可以显示生成的结果集,结果与您所说的相同?@Ringelmann我在Oracle 12.2.0.1上看到了相同的Behvaior,它使用一个不太直接(但本质上相同)的语句插入表SELECT*FROM(…),其中在(…)中调用sys_guid()部分。我必须创建一个插入触发器来插入主键作为解决方法。