我写了一段 PLSQL 代码,我试图在其中引入立即执行语句 但需要动态创建 SQL 语句
下面是我的以下声明,其中有些内容没有被执行
tblname := 'emp';
v_tbl := 'emp_123';
execute immediate 'CREATE TABLE' || tblname || ' AS select * from ' || v_tbl;
任何解决方案都非常感谢
您尚未声明变量的数据类型,并确保 emp_123 表在架构中可用。以下是示例代码:
DECLARE
Tblname VARCHAR2(6) := 'emp';
v_Tbl VARCHAR2(9) := 'emp_123';
BEGIN
EXECUTE IMMEDIATE 'CREATE TABLE ' || Tblname || ' AS select * from ' || v_Tbl;
END;
虽然 @sachin-padha 提供的答案应该是正确的,但我想指出 OT 代码的真正问题:
'CREATE TABLE' || tblname
在关键字
和注入的表名称之间缺少 TABLE
。 CREATE TABLEemp AS select * from emp_123
ORA-00901: invalid CREATE command
异常