DECLARE linTb   VARCHAR2(20);
BEGIN 
linTb:='IllProcRecord';
END;
select linktableid from emrframework where inorout='0' and linktable=linTb;想实现类似以下语句的结果,为linktable用变量linTb来赋值
select linktableid from emrframework where inorout='0' and linktable='IllProcRecord';

解决方案 »

  1.   

    select linktableid from emrframework where inorout='0' and linktable=&linTb;
      

  2.   

    DECLARE 
    linTb   VARCHAR2(20);
    V_linktableid VARCHAR2(20);
    BEGIN 
    linTb:='IllProcRecord';select linktableid 
    INTO V_linktableid 
    from emrframework 
    where inorout='0' and linktable=linTb;DBMS_OUT.PUTLINE(V_linktableid );END;
      

  3.   


    DECLARE
    linTb  VARCHAR2(20);
    str varchar2(500); 
    BEGIN
    linTb:='IllProcRecord';
    str:='select linktableid
    INTO V_linktableid
    from emrframework
    where inorout='0' and linktable=(:1)';
    EXECUTE IMMEDIATE str USING linTb;
    END; 
    求更正此代码。谢谢
      

  4.   


    DECLARE
    linTb  VARCHAR2(20);
    str varchar2(500); 
    BEGIN
    linTb:='IllProcRecord';
    str:='select linktableid
    INTO V_linktableid
    from emrframework
    where inorout=0 and linktable=:linTb';
    EXECUTE IMMEDIATE str  using  linTb;END; 
      

  5.   


    DECLARE
    linTb  VARCHAR2(20);
    str varchar2(500); 
    BEGIN
    linTb:='IllProcRecord';
    str:='select linktableid
    INTO V_linktableid
    from emrframework
    where inorout='''||0||'''' and linktable=(:1)';
    EXECUTE IMMEDIATE str USING linTb;
    END;
      

  6.   

    @YY_MM_DD
    引号内的字符串没有正确结束
      

  7.   

    多了个单引号
    'select linktableid
    INTO V_linktableid
    from emrframework
    where inorout='''||0||''' and linktable=(:1)'
      

  8.   


    DECLARE linTb VARCHAR2(20);
    BEGIN 
    linTb:='IllProcRecord';
    execute immediate 'select linktableid from emrframework where inorout='0' and linktable='||'''linTb'''
      

  9.   

    LZ,不明白你想做什么和,你懂动态SQL的话,查询的结果也没有办法显示啊,还是要DBMS_PUT显示......
      

  10.   

    @java3344520 
    没有用过Orcal  。
      

  11.   

    DECLARE
    linTb  VARCHAR2(20);
    str varchar2(500); 
    BEGIN
    linTb:='IllProcRecord';
    str:='select linktableid
    from emrframework
    where inorout='0' and linktable=(:1)';
    EXECUTE IMMEDIATE str INTO  V_linktableid USING linTb;
    DBMS_OUT.PUTLINE(V_linktableid ); 
    END; 
      

  12.   

    动态的sql的串不用into吧
    在execute时into即可了