1

我有一个包含 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。

谢谢

4

1 回答 1

3

如果我的问题是正确的,那么您正在寻找类似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.
于 2013-07-31T05:16:27.820 回答