我有一个包含 SQL 查询、程序等的数据库。
现在我有以下带有连接运算符的 SQL 语句。
'INSERT INTO TEST_TABLE(ID, NAME)' || 'SELECT ID, NAME FROM ' || ' MY_TABLE'
我希望当我得到 SQL 时它会返回
INSERT INTO TEST_TABLE(ID, NAME) SELECT ID, NAME FROM MY_TABLE
此 SQL 只是示例,但基本上我想删除连接并返回简单的 SQL。
谢谢
如果我的问题是正确的,那么您正在寻找类似eval使 oracle 评估带有连接标记的字符串的东西。
尝试这样的事情
declare
concatenetaed_sql varchar2(32000);
result_Sql varchar2(32000);
begin
concatenetaed_sql := '''INSERT INTO TEST_TABLE(ID, NAME)'' || ''SELECT ID, NAME FROM '' || '' MY_TABLE''';
execute immediate 'select ' || concatenetaed_sql || ' from dual'
into result_sql;
dbms_output.put_line(result_sql);
end;
结果
INSERT INTO TEST_TABLE(ID, NAME)SELECT ID, NAME FROM MY_TABLE
PL/SQL procedure successfully completed.