sqlstr := 'select count(*) from user_tables where table_name=''REAL''';
 EXECUTE IMMEDIATE sqlstr into ls_aa ;
 dbms_output.put_line(ls_aa);

解决方案 »

  1.   

    这一百分容易啊
    declare
    sqlstr varchar2(4000);
     ls_aa number(6);
    begin
    select count(*) into ls_aa from user_tables where table_name='REAL';
     dbms_output.put_line(ls_aa);
    end;
    这样就可以
      

  2.   

    sqlstr varchar2(4000);
    也可以不要
      

  3.   

    卢兄:
    你的方法固然没问题,但我想楼主既然用到了execute immediate,必然是为了构造动态的SQL语句,如表名和字段名做为变量等等,这样的话直接写是不行了吧。
      

  4.   

    我觉得楼主的real应该是real',那么应该这样的:
    sqlstr := 'select count(*) from user_tables where table_name='REAL''';
     EXECUTE IMMEDIATE sqlstr into ls_aa ;
     dbms_output.put_line(ls_aa);
      

  5.   

    declare
      type t_cursor is ref cursor; --声明一个游标类型
      cur_CheckResult t_cursor;
      v_sql varchar2(1000);
      v_num int;
    begin
      v_sql:='select count(*)  from user_tables where table_name like  ''AA''' ;
      open cur_CheckResult for v_sql; 
      fetch cur_checkresult into v_num;
      close cur_CheckResult;
      dbms_output.put_line(v_num);
    end;