这样的插入sql语句
insert into TB_SELF_CUSTOMER(N_BRANCH_ID,v_username)values('select CUST_ID from TB_CUST_INFO where CUST_NO=?','123'); 第一个引号的地方我想通过一个可变的值查询
select CUST_ID from TB_CUST_INFO where CUST_NO='?' 这样的,但是values里面的值也是要单引号的,那位可以告诉我,应该怎么写。

解决方案 »

  1.   

    SQL> --在字符串里两个单引号会转换成一个单引号
    SQL> select 'select * from dual where ''1''=''1''' from dual;
     
    'SELECT*FROMDUALWHERE''1''=''1
    --------------------------------
    select * from dual where '1'='1'
      

  2.   


    declare 
    yourval varchar2(20):='yourvalue';
    begin
    insert into TB_SELF_CUSTOMER(N_BRANCH_ID,v_username)
    select CUST_ID,'123' from TB_CUST_INFO where CUST_NO=yourval;
    end;
    /
      

  3.   

    这样可以?
    CREATE TABLE X1(ID VARCHAR2(20),SNAME VARCHAR2(20));
    CREATE TABLE X2(ID VARCHAR2(20),SNAME VARCHAR2(20));
    INSERT INTO X1 VALUES('0001','S0001');
    INSERT INTO X1 VALUES('0002','S0002');
    INSERT INTO X1 VALUES('0003','S0003');
    INSERT INTO X1 VALUES('0004','S0004');
    INSERT INTO X1 VALUES('0005','S0005');DECLARE 
    v_id VARCHAR2(20):='0001';
    BEGIN
      INSERT INTO X2 VALUES((SELECT id FROM X1 WHERE id=v_id),'123');  
    END;SELECT * FROM X2;
    ID SNAME
    0001 123
      

  4.   

    insert into 
    TB_SELF_CUSTOMER(N_BRANCH_ID,v_username)
    values
    ((select CUST_ID from TB_CUST_INFO where CUST_NO=?),'123')