如何为预言机多行插入生成 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 为每一行调用该函数:

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

例如:

insert into test_guid (col1, col2, col_unique_guid) select col1, col2, get_my_guid(rownum) from test_guid_src;

相关内容

  • 没有找到相关文章

最新更新