Sql 如何为oracle多行插入生成GUI
我必须在Oracle sql表中插入几行。像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传递
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()部分。我必须创建一个插入触发器来插入主键作为解决方法。