在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: 表名无效警告: 创建的过程带有编译错误。向大虾们请教。
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: 表名无效警告: 创建的过程带有编译错误。向大虾们请教。
( UUID IN NChar)
IS
BEGIN
SELECT * FROM "System".USERINFO WHERE USERID = UUID;
END FindUserInfo; 提示表不存在
这样再试试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;
"System".USERINFO 这是sqlserver的写法,oracle里面不是这样写的啊!
( UUID IN NChar)
IS
BEGIN
SELECT * FROM System.USERINFO WHERE USERID = UUID;
END FindUserInfo; 直接用System.USERINFO就可以了!
oracle好像没有'system'.USERINFO这样的写法,楼主可以改为如下两种:
system.userinfo或者"system".userinfo