declare
strSYSJ varchar2(10);
statement varchar(2000);
begin
strSYSJ:=to_char(&num);
statement:='SELECT * FROM kehuxinxi where weijibianma=:1';
execute immediate statement using strSYSJ;
end;

解决方案 »

  1.   

    不是把!漏了;拉
     execute immediate statement ;
      

  2.   

    好象是execute immediate statement 后掉了; 加上去就可以了吧
      

  3.   

    execute immediate statement加上,号
     提示: 
    ERROR 位于第 1 行:
    ORA-00904: "STRSYSJ": 无效的标识符
    ORA-06512: 在line 7
      

  4.   

    declare
       strSYSJ varchar2(10);
       statement varchar(2000);
       begin
       strSYSJ:=to_char(&num);
       statement:='SELECT * FROM tbkehuxinxi where weijibianma=strSYSJ';
       SYS.DBMS_OUTPUT.PUT_LINE( statement);
       end;
    我只行以上语句后,提示"PL/SQL 过程已成功完成。"
    但我如果将以上查询数据显示出来
    请各位帮忙!!!
      

  5.   

    在执行这个语句块之前,先set serveroutput on
      

  6.   

    我试过,提示:ERROR 位于第 1 行:
    ORA-00922: 缺少或无效选项为什么会这样,究竟什么地方出错了?
      

  7.   

    现在是出现了'SELECT * FROM tbkehuxinxi where weijibianma=strSYSJ'语句
    但是我是想显示了通过strSYSJ变量的值来显示'SELECT * FROM tbkehuxinxi where weijibianma=strSYSJ'语句执行的结果集,
    而并非只\显示'SELECT * FROM tbkehuxinxi where weijibianma=strSYSJ'这个字符串
      

  8.   

    如果查询到一条记录 用 select into ; 
    查询返回多条记录,用游标了,
      

  9.   

    create or replace procedure test_ref_cursor as 
    r_A1 a1%rowtype;
    type v_type is ref cursor;
    c1 v_type;
    strSYSJ varchar2(10) default '5';
    v_sql varchar(2000);
    begin
    v_sql := 'SELECT m,n FROM A1 where trim(M) = :1';
    open c1 for v_sql using strSYSJ;
    --下面的只是把结果输出
    loop 
    fetch c1 into r_a1 ;
    exit when c1%notfound;
    dbms_output.put_line(r_a1.m||'==='||r_a1.n);
    end loop;
    end test_ref_cursor;SQL> exec test_ref_cursor;5   ===5   
    5   ===5   
    5   ===5   PL/SQL procedure successfully completed
      

  10.   

    SELECT * FROM kehuxinxi where weijibianma=to_char(&num);