2011-08-04 91 views
0

里面select语句我想下面的SQL查询一个INSERT语句

INSERT INTO test.ACT_QUERY values(2139,2,'SELECT ''D'',ORDER_ID from dual'); 

当一个Java程序运行从test.ACT_QUERY表和卷轴此select语句的输出文件时,它提供了一个“d”,123。我只想要D,123。不知道为什么报价出现。我需要在select语句中替换以获得输出为D,123

+0

最后应该执行的insert语句是什么? INSERT INTO test.ACT_QUERY值(2139,2,'D',123); ?? –

+1

我假定select语句得到执行并且输出被写入输出文件,在这种情况下问题在于无论是将结果集写入文件而不是select语句。 – edge2

+0

非常感谢您的信息 – Arav

回答

1

很难想象您的问题。原则上,你在做什么并没有错,它在PL/SQL中起作用。

这是您的测试数据,略微调整了对我的数据库运行:

SQL> INSERT INTO ACT_QUERY values(2139,2,'SELECT ''D'', DUMMY from dual'); 

1 row created. 

SQL> select * from act_query 
    2/

     ID  BLAH 
---------- ---------- 
QRY_TXT 
-------------------------------------------------------------------------------- 
     2139   2 
SELECT 'D', DUMMY from dual 


SQL> 

让我们滚!

SQL> begin 
    2  for r in (select * from 
    3 
    4 . 
SQL> declare 
    2  v1 char(1); 
    3  v2 char(1); 
    4 begin 
    5  for r in (select * from act_query) 
    6  loop 
    7   execute immediate r.qry_txt into v1, v2; 
    8   dbms_output.put_line(r.qry_txt); 
    9   dbms_output.put_line('v1='||v1||'::v2='||v2); 
10  end loop; 
11 end; 
12/
SELECT 'D'as D, DUMMY from dual 
v1=D::v2=X 

PL/SQL procedure successfully completed. 

SQL> 

因此,您需要更详细地解释您的情况,并切割实际输出的粘贴。

+0

非常感谢您的信息。对于迟到的回应道歉 – Arav

+0

您的正确。问题是与正在retreiving的java程序有问题。非常感谢您的时间 – Arav