如何将PL/SQL分配为变量的一部分,并在Oracle中作为查询字符串执行该变量
我有以下疑问:如何将PL/SQL分配为变量的一部分,并在Oracle中作为查询字符串执行该变量,oracle,Oracle,我有以下疑问: 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
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;
现在的问题是:
您可以尝试使用“定义”而不是“声明”:
DEFINE vquery = 'CREATE TABLE MYSCHEMA.MyTable ( ID INTEGER NOT NULL, -
Badge INTEGER NOT NULL, Password NVARCHAR2(50),PRIMARY KEY (ID))'
&vquery;
我对这一点不是百分之百的肯定,但我正在根据以下内容进行调整:。这里有两个很好的解决方案对我都适用。您可以尝试使用DEFINE而不是DECLARE:
DEFINE vquery = 'CREATE TABLE MYSCHEMA.MyTable ( ID INTEGER NOT NULL, -
Badge INTEGER NOT NULL, Password NVARCHAR2(50),PRIMARY KEY (ID))'
&vquery;
我对这一点不是百分之百的肯定,但我正在根据以下内容进行调整:。有两个很好的解决方案都对我有用。有一个小的语法错误,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;
有一个小语法错误,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;
我认为引号不正确-请尝试使用
dbms_output.put_line('VQUERY is:'| | VQUERY)代码>我能够成功执行,但vquery输出没有打印..使用pl/sql developer..有什么想法吗?我认为引号不正确-请尝试dbms_output.put_line('vquery为:'| | vquery)代码>我能够成功执行,但是vquery输出没有打印..使用pl/sql developer..有什么想法吗?pl/sql过程成功完成。--我得到了这个,但是输出没有打印..@user2948533在pl/sql developer中,在声明
完美之前,将设置为查看输出或尝试添加SET SERVEROUTPUT ON
!我尝试将serveroutput设置为大小30000;。。它解决了…谢谢!PL/SQL过程已成功完成。--我正在获取此信息,但输出未打印。@user2948533在PL/SQL Developer中,将有一个设置来查看输出或尝试在声明
完美之前添加SET SERVEROUTPUT ON
!我尝试将serveroutput设置为大小30000;。。它解决了…谢谢!感谢您的帮助,SandPiper,似乎我缺少一个设置:将serveroutput设置为大小30000;。。感谢您的帮助,SandPiper,似乎我缺少一个设置:将serveroutput设置为大小30000;。。