我有以下查询:
DECLARE vquery Varchar2(5000) := 'CREATE TABLE MYSCHEMA.MyTable ( ID INTEGER NOT NULL, Badge INTEGER NOT NULL,Password NVARCHAR2(50),PRIMARY KEY (ID))' ;
Begin
--EXECUTE IMMEDIATE vquery;--This is what I want to execute
dbms_output.put_line('VQUERY is: '' || vquery || ');--Just wanted to test
End;
现在的问题是:
我想要的是通过最终运行来创建该表:
EXECUTE IMMEDIATE vquery;
我正在使用PL / SQL Developer。 提前致谢。
答案 0 :(得分:0)
您可以尝试使用DEFINE而不是DECLARE:
DEFINE vquery = 'CREATE TABLE MYSCHEMA.MyTable ( ID INTEGER NOT NULL, -
Badge INTEGER NOT NULL, Password NVARCHAR2(50),PRIMARY KEY (ID))'
&vquery;
我不是100%肯定这个,但我正在调整它:Define a VIEW in Oracle without using CREATE。有几个很好的解决方案都适用于我。
答案 1 :(得分:0)
有一个小的语法错误,vquery是一个字符串,因为你将变量作为字符串的一部分包含在内
DBMS_OUTPUT.put_line ('VQUERY is: ' || vquery);
而不是
DBMS_OUTPUT.put_line('VQUERY is: '' || vquery || ');
所以试试
DECLARE
vquery VARCHAR2 (5000);
BEGIN
vquery :=
'CREATE TABLE MyTable ( ID INTEGER NOT NULL, Badge INTEGER NOT NULL,Password NVARCHAR2(50),PRIMARY KEY (ID))';
--EXECUTE IMMEDIATE vquery;--This is what I want to execute
DBMS_OUTPUT.put_line ('VQUERY is: ' || vquery); --Just wanted to test
END;