有关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用的吧。