简单的问题 - 如果我正在尝试构建动态查询并在PL/SQL存储过程中运行它,如何将变量括在单引号中以便正确调用它?
例如:
我首先声明一个变量来保存游标的列值.我还声明了一个变量来保存动态查询:
vTest VARCHAR(200);
l_cur_string VARCHAR2(128);
Run Code Online (Sandbox Code Playgroud)
定义我的光标后,我像这样循环:
For entry in c1
LOOP
vTest:= entry.variable;
l_cur_string := 'SELECT ex1, ex2FROM exTable WHERE col1= || vTest;
END LOOP;
Run Code Online (Sandbox Code Playgroud)
当然,当我打印出动态查询时,它没有单引号vTest
.我已经尝试添加它们,但我没有做任何正确的编译.
对简单问题的任何帮助?谢谢!
将要在字符串中显示的单引号加倍:
l_cur_string := 'SELECT ex1, ex2FROM exTable WHERE col1= '''|| vTest || '''';
Run Code Online (Sandbox Code Playgroud)
但请记住,直接在SQL表达式中嵌入字符串是一种利用漏洞的快速途径.