有关out的问题!在线等!!!!!!!!!!!
CREATE OR REPLACE PROCEDURE UP_CAUSER_GetMaxId(user_id_info out number)
is
TempID number;
begin
SELECT max(user_id)+1 into TempID FROM causer;
IF (TempID IS NULL) then user_id_info:=-1;
else
user_id_info:=TempID;
END IF;
end;
这样的OUT参数为什么总在程序里报:“ORA-01036: 非法的变量名/编号”
------解决方案--------------------这个存储过程表面上看没什么问题。
问题关键是你如何调用它的?
1 CREATE OR REPLACE PROCEDURE UP_CAUSER_GetMaxId(user_id_info out number)
2 is
3 TempID number;
4 begin
5 SELECT 1 into TempID FROM dual;
6 IF (TempID IS NULL) then user_id_info:=-1;
7 else
8 user_id_info:=TempID;
9 END IF;
10* end;
11 /
过程已创建。
SQL> set serveroutput on;
SQL> declare
2 id number;
3 begin
4 up_causer_getmaxid(id);
5 dbms_output.put_line(id);
6 end;
7 /
1
PL/SQL 过程已成功完成。
------解决方案--------------------OracleDbType.Number大写的.
------解决方案--------------------你在c#中调用出现的问题,问题不在oracle上
------解决方案--------------------参数的名字是ReturnValue,是不是有问题呀?
ParameterDirection.ReturnValue?是应该是ParameterDirection.Output吧.
ParameterDirection.ReturnValue好像是给function用的吧。