v_char:='cs';               --?
select * from user_info where username=v_char

解决方案 »

  1.   

    我需要把where也包含进去。程序需要。
    谢谢
      

  2.   

    字符连接 ||不过你的SQL语句是临时拼起来的,不能象你那样直接使用。create or replace procedure temp_cs is
    v_char varchar2(10);
    begin
    v_char:='where username=cs';               --?
    select * from user_info + v_char;   --?
    end;改为
    create or replace procedure temp_cs is
    v_char varchar2(10);
    v_sql  varchar(100);
    begin
     v_char:='where username='''||cs||'''';   --我想你的cs应该是输入参数吧,
                                              -- 而且username是字符型的
     v_sql := ' select * from user_info'|| v_char;   --?
     execute  immediate v_sql into ....;
    end;
    /
      

  3.   

    execute  immediate v_sql into ....;能给出直接输出和输出至一个变量的写法么?
      

  4.   

    CREATE OR REPLACE PACKAGE pkg_test
    AS
       TYPE myrctype IS REF CURSOR;
    END pkg_test;
    /create or replace procedure temp_cs(cs in varchar2,p_rc out pkg_test.myrctype)
    is
    v_char varchar2(10);
    str varchar2(50);
    begin
    v_char:='where username='''||cs||'''';               
    str:='select * from user_info '||v_char;   
    open p_rc for str;
    end;
    /
      

  5.   

    谢谢 beckhambobo(beckham)!execute  immediate v_sql into ....;
    这句能否具体一些?
      

  6.   

    declare
    v_a varchar2(20);
    begin
    execute immeidate 'select a from table where rownum<2' into v_a;
    end;
      

  7.   

    要把所变量定义,然后。。
    要清楚知道当前有多少字段execute immediate 'select * from table where....' into 变量1,变理2,....;
      

  8.   

    请问有没有知道ORACLE数据库的存储过程中怎么用CASE语句的,请指教!!!!