【发布时间】:2012-01-29 04:35:57
【问题描述】:
我想知道是否有某种方法可以查看从 .net 方法调用的存储过程的参数列表。我不断收到一个
PLS-00306: wrong number or types of arguments in call to 'SPPUT_FOCUSEDREADMIT'
ORA-06550:第 1 行,第 7 列
每当我调用我的存储过程时都会出现异常。我查看了为拨打电话而设置的对象,似乎我设置正确。我知道我要展示代码来证明这一点,我会大声疾呼,但我循环遍历一个 XML 文档来填充 ODP.net 的 cmd.Parameters 对象......所以我只会向你展示我的数组使用 XPath 到正确的节点和存储过程的参数列表...无需显示所有代码...
string[] paths = new string[31];
paths[0] = "EncounterId";
paths[1] = "PopulationPatientID";
paths[2] = "EMPIID";
paths[3] = "Active";
paths[4] = "FirstName";
paths[5] = "LastName";
paths[6] = "DateOfBirth";
paths[7] = "Phone";
paths[8] = "HospitalFinNumber";
paths[9] = "AdmitDate";
paths[10] = "MRNType";
paths[11] = "MRN";
paths[12] = "PatientRoomPhone";
paths[13] = "DischargeDateTime";
paths[14] = "DischargeDisposition";
paths[15] = "DischargeTo";
paths[16] = "DischargeAdvocateCall";
paths[17] = "Payor";
paths[18] = "HomeHealthCareAccepted";
paths[19] = "SafeLandingAccepted";
paths[20] = "PCPName";
paths[21] = "PCPPhone";
paths[22] = "SpecialistName";
paths[23] = "SpecialistPhone";
paths[24] = "PCPAppointmentDateTime";
paths[25] = "PCPAppointmentLocation";
paths[26] = "SpecialistAppointmentDateTime";
paths[27] = "SpecialistAppointmentLocation";
paths[28] = "CompletedPathway";
paths[29] = "CompletedPathwayReason";
paths[30] = "Comment";
string[] colName = new string[31];
colName[0] = "FOCUSED_READMISSIONS_IDIn";
colName[1] = "POPULATION_PATIENT_IDIn";
colName[2] = "EMPIin";
colName[3] = "ACTIVEIn";
colName[4] = "FIRST_NAMEin";
colName[5] = "LAST_NAMEin";
colName[6] = "DOBin";
colName[7] = "PHONEin";
colName[8] = "HOSPITAL_FIN_NUMBERin";
colName[9] = "ADMIT_DATEin";
colName[10] = "MRN_TYPEin";
colName[11] = "MRNin";
colName[12] = "PATIENT_ROOM_PHONEin";
colName[13] = "DISCHARGE_DATEin";
colName[14] = "DISCHARGE_DISPOSITIONin";
colName[15] = "DISCHARGE_TOin";
colName[16] = "DISCHARGE_ADVOCATE_CALLin";
colName[17] = "PAYORin";
colName[18] = "HOME_HEALTHCARE_ACCEPTEDin";
colName[19] = "SAFE_LANDING_ACCEPTEDin";
colName[20] = "PCP_NAMEin";
colName[21] = "PCP_PHONEin";
colName[22] = "SPECIALIST_NAMEin";
colName[23] = "SPECIALIST_PHONEin";
colName[24] = "PCP_APPOINTMENT_DATETIMEin";
colName[25] = "PCP_APPOINTMENT_LOCATIONin";
colName[26] = "SPECIALIST_APPT_DATETIMEin";
colName[27] = "SPECIALIST_APPT_LOCATIONin";
colName[28] = "COMPLETED_PATHWAYin";
colName[29] = "COMPLETED_PATHWAY_REASONin";
colName[30] = "COMMENTSin";
这里是存储过程的参数列表...
FOCUSED_READMISSIONS_IDIn NUMBER,
POPULATION_PATIENT_IDIn NUMBER,
EMPIin VARCHAR2,
FIRST_NAMEin VARCHAR2,
LAST_NAMEin VARCHAR2,
DOBin VARCHAR2,
PHONEin VARCHAR2,
HOSPITAL_FIN_NUMBERin VARCHAR2,
ADMIT_DATEin VARCHAR2,
MRN_TYPEin VARCHAR2,
MRNin VARCHAR2,
PATIENT_ROOM_PHONEin VARCHAR2,
DISCHARGE_DATEin VARCHAR2,
DISCHARGE_DISPOSITIONin VARCHAR2,
DISCHARGE_TOin VARCHAR2,
DISCHARGE_ADVOCATE_CALLin VARCHAR2,
PAYORin VARCHAR2,
HOME_HEALTHCARE_ACCEPTEDin VARCHAR2,
SAFE_LANDING_ACCEPTEDin VARCHAR2,
PCP_NAMEin VARCHAR2,
PCP_PHONEin VARCHAR2,
SPECIALIST_NAMEin VARCHAR2,
SPECIALIST_PHONEin VARCHAR2,
PCP_APPOINTMENT_DATETIMEin VARCHAR2,
PCP_APPOINTMENT_LOCATIONin VARCHAR2,
SPECIALIST_APPT_DATETIMEin VARCHAR2,
SPECIALIST_APPT_LOCATIONin VARCHAR2,
COMPLETED_PATHWAYin VARCHAR2,
COMPLETED_PATHWAY_REASONin VARCHAR2,
COMMENTSIn VARCHAR2,
ACTIVEIn VARCHAR2,
ACTIVE_DATEIn VARCHAR2
但是那段代码是无关紧要的。当我从 .net 函数调用存储过程时,如何查看发送到存储过程的内容。因为当我从 sql Developer 调用它时,它似乎工作得很好。
【问题讨论】:
标签: oracle stored-procedures plsql oracle11g odp.net