Наблюдение за вызовами хранимых процедур .net-Oracle для просмотра списка параметров - PullRequest
0 голосов
/ 28 декабря 2011

Мне интересно, есть ли способ просмотреть список параметров хранимой процедуры, вызываемой из метода .net.Я получаю исключение

PLS-00306: wrong number or types of arguments in call to 'SPPUT_FOCUSEDREADMIT'

ORA-06550: строка 1, столбец 7

всякий раз, когда я вызываю свою хранимую процедуру.Я смотрю на объект, который я настроил, чтобы сделать вызов, и кажется, что я настраиваю его правильно.Я знаю, что у меня будут завывания, чтобы показать код, чтобы доказать это, но я перебираю XML-документ для заполнения объекта cmd.Parameters в ODP.net ... Так что я просто покажу вам массив, который яиспользовать для 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, кажется, он работает просто отлично.

1 Ответ

1 голос
/ 28 декабря 2011

На самом деле, я насчитал 32 параметра в списке параметров Oracle, а вы вызываете его только с 31. Что на самом деле не отвечает на вопрос, но является причиной вашей ошибки.

Есть много способоввыяснить список параметров из Oracle.Вы можете использовать describe или хранимые процедуры dbms_metadata, dbms_describe;затем есть системные таблицы и представления: all_procedures, user_arguments и т. д.

user_arguments, вероятно, наиболее вероятно, будет полезным для вас.

...