在System用户下,创建了USERINFO表。有两个字段,USERID和USERNAME,都是NChar(10)SHOW ERRORS
create or replace PROCEDURE FindUserInfo
 ( UUID IN NChar)
IS 
BEGIN
  SELECT * FROM 'System'.USERINFO WHERE USERID = UUID;
END FindUserInfo;这个存储过程报错LINE/COL ERROR
-------- -----------------------------------------------------------------
5/3      PL/SQL: SQL Statement ignored
5/17     PL/SQL: ORA-00903: 表名无效警告: 创建的过程带有编译错误。向大虾们请教。

解决方案 »

  1.   

    创建存储过程的时候,也是用的System用户登录
      

  2.   

    create or replace PROCEDURE FindUserInfo 
    ( UUID IN NChar) 
    IS 
    BEGIN 
      SELECT * FROM "System".USERINFO WHERE USERID = UUID; 
    END FindUserInfo; 提示表不存在
      

  3.   

    去掉这个'System'.试试.
    这样再试试create or replace PROCEDURE FindUserInfo 
    ( UUID IN NChar,u_record OUT userinfo%Rowtype) 
    IS 
    BEGIN 
      SELECT * Into u_record FROM USERINFO WHERE USERID = UUID; 
    END FindUserInfo; 
      

  4.   


    "System".USERINFO  这是sqlserver的写法,oracle里面不是这样写的啊!
      

  5.   

    create or replace PROCEDURE FindUserInfo 
    ( UUID IN NChar) 
    IS 
    BEGIN 
      SELECT * FROM System.USERINFO WHERE USERID = UUID; 
    END FindUserInfo; 直接用System.USERINFO就可以了!
      

  6.   


    oracle好像没有'system'.USERINFO这样的写法,楼主可以改为如下两种:
    system.userinfo或者"system".userinfo