我将包内的存储过程放到包外,修改后的包如下:<br>Create Or Replace Package ChargePKG <br> As<br> Type ChargeCursor Is REF Cursor;<br>End ChargePKG;<br>1.当存储过程为<br>Create Or Replace Procedure GetCarSortChargeData(Dep VARCHAR2,<br> ClassNO VARCHAR2,<br> MorningShiftOnDuty VARCHAR2,<br> MorningShiftOffDuty VARCHAR2,<br> MiddleShiftOnDuty VARCHAR2,<br> MiddleShiftOffDuty VARCHAR2,<br> NightShiftOnDuty VARCHAR2,<br> NightShiftOffduty VARCHAR2) <br>Is<br>Begin<br> Insert Into TempGratisCarTable(CarID,CarTpye,CriterionWeight,WholeWeight) Values(1,2,3,4);<br>End GetCarSortChargeData;<br>时,执行“SQLStoredProc1.ExecProc;”正常<br>2.当存储过程为<br>Create Or Replace Procedure GetCarSortChargeData(Dep Number,<br> ClassNO Number,<br> MorningShiftOnDuty VARCHAR2,<br> MorningShiftOffDuty VARCHAR2,<br> MiddleShiftOnDuty VARCHAR2,<br> MiddleShiftOffDuty VARCHAR2,<br> NightShiftOnDuty VARCHAR2,<br> NightShiftOffduty VARCHAR2) <br>Is<br>Begin<br> Insert Into TempGratisCarTable(CarID,CarTpye,CriterionWeight,WholeWeight) Values(1,2,3,4);<br>End GetCarSortChargeData;<br>时(即包既具有数字型输入变量,又具有字符串型输入变量),执行“SQLStoredProc1.ExecProc;”时提示“BCD overflow”错误。<br>3.将存储过程改为<br>Create Or Replace Procedure GetCarSortChargeData(Dep VARCHAR2,<br> ClassNO VARCHAR2,<br> MorningShiftOnDuty VARCHAR2,<br> MorningShiftOffDuty VARCHAR2,<br> MiddleShiftOnDuty VARCHAR2,<br> MiddleShiftOffDuty VARCHAR2,<br> NightShiftOnDuty VARCHAR2,<br> NightShiftOffduty VARCHAR2,<br> CarSortChargeCursor Out ChargePKG.ChargeCursor) <br>Is<br>Begin<br> Insert Into TempGratisCarTable(CarID,CarTpye,CriterionWeight,WholeWeight) Values(1,2,3,4);<br> Open CarSortChargeCursor For Select * From TempGratisCarTable;<br>End GetCarSortChargeData;<br>时(即在输入变量均为字符串型变量的基础上,增加了游标型输出变量),执行“SQLStoredProc1.Open;”时提示如下错误<br>ORA-06550:第1行,第1列;<br>PLS-00306:调用'GetCarSortChargeData'时参数个数或类型错误<br>ORA-06550:第1行,第1列;<br>PLS-00306:调用'GetCarSortChargeData'时参数个数或类型错误<br>ORA-06550:第1行,第1列;<br>PL/SQL:Statement ignored.<br>请大侠门指教是怎么回事?是dbexpress的bug吗?