在存储过程中
select count(*) from all_tables where table_name = 'TBL_KEY_INFO';
select count(*) into num from all_tables where table_name = 'TBL_KEY_INFO';
dbms_output.put_line(num);返回的结果是1,可输出的num却是0,是怎么回事呢?随便打开一个SQL窗口,写上面的命令(包括声明变量==),返回结果和输出就都是1请高手指教,谢谢

解决方案 »

  1.   

    在存储过程中不可能让你这么写
    select count(*) from all_tables where table_name = 'TBL_KEY_INFO';编译都通不过
      

  2.   

    还有可能select count(*) from all_tables where table_name = 'TBL_KEY_INFO';
    运行在一个用户下面

    select count(*) into num from all_tables where table_name = 'TBL_KEY_INFO';
    dbms_output.put_line(num); 
    运行在另外一个用户下面
    all_tables的值就不一样了
      

  3.   

    前面的东西都省略了。我可以在存储过程中select出结果集,只是打出关键的2句说明问题
      

  4.   

    SELECT *
      FROM ALL_TABLES
     WHERE OWNER = UPPER('SCHEMA_NAME')
       AND TABLE_NAME = UPPER('TABLE_NAME');