我在 Oracle 中遇到了一个小问题。我尝试创建一个序列,用于在已包含数据的表中生成 ID。我尝试使用以下匿名块。
declare y varchar2(2000);
BEGIN
SELECT 'CREATE SEQUENCE ID_SEQ MINVALUE 1 MAXVALUE 9999999999 START WITH ' || (max(ID)+1) || ' INCREMENT BY 1 CACHE 20;' INTO y FROM TEST_TABLE;
--dbms_output.put_line(y);
execute immediate y;
end;
我收到以下错误:
Error report:
ORA-00911: invalid character
ORA-06512: at line 5
00911. 00000 - "invalid character"
如果我执行 y 变量的值,它会完美运行。我使用 SQL Developer 作为输入接口并在 11g r2 Oracle 服务器上工作。我发现了类似的代码,其中“INCREMENT BY”参数是由脚本生成的。有人可以解释我的错误吗?