2010-09-28 72 views
1

我試圖解決這個問題,但無濟於事。將大量數據插入包含程序'INSCRAPP'的Oracle軟件包時,我會遇到錯誤。該錯誤消息是,ORA-06550,PLS-00306;將數據插入Oracle過程時出錯

ORA-06550:第1行,第7列: PLS-00306:錯誤數量或類型的在調用 'INSCRAPP' ORA-06550 參數:第1行,第7列: PL/SQL: 語句忽略

的C#代碼是大,但我提供我傳遞的參數,

oraCmd.Parameters.Clear(); 

      OracleParameter param_fName_in = new OracleParameter("fName_in", OracleType.VarChar); 
      param_fName_in.Value = FirstName; 
      param_fName_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_fName_in); 

      OracleParameter param_mi_in = new OracleParameter("mi_in", OracleType.VarChar); 
      param_mi_in.Value = MiddleInitial; 
      param_mi_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_mi_in); 

      OracleParameter param_lName_in = new OracleParameter("lName_in", OracleType.VarChar); 
      param_lName_in.Value = LastName; 
      param_lName_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_lName_in); 

      OracleParameter param_addr1_in = new OracleParameter("addr1_in", OracleType.VarChar); 
      param_addr1_in.Value = HousingAddress1; 
      param_addr1_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_addr1_in); 

      OracleParameter param_addr2_in = new OracleParameter("addr2_in", OracleType.VarChar); 
      param_addr2_in.Value = HousingAddress2; 
      param_addr2_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_addr2_in); 

      OracleParameter param_city_in = new OracleParameter("city_in", OracleType.VarChar); 
      param_city_in.Value = HousingCity; 
      param_city_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_city_in); 

      OracleParameter param_st_cd_in = new OracleParameter("st_cd_in", OracleType.VarChar); 
      param_st_cd_in.Value = HousingStateCode; 
      param_st_cd_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_st_cd_in); 

      OracleParameter param_zip_cd_in = new OracleParameter("zip_cd_in", OracleType.VarChar); 
      param_zip_cd_in.Value = HousingZipCode; 
      param_zip_cd_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_zip_cd_in); 

      OracleParameter param_home_phone_in = new OracleParameter("home_phone_in", OracleType.VarChar); 
      param_home_phone_in.Value = HomePhone; 
      param_home_phone_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_home_phone_in); 

      OracleParameter param_work_phone_in = new OracleParameter("work_phone_in", OracleType.VarChar); 
      param_work_phone_in.Value = WorkPhone; 
      param_work_phone_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_work_phone_in); 

      OracleParameter param_ext_in = new OracleParameter("ext_in", OracleType.VarChar); 
      param_ext_in.Value = WorkExtension; 
      param_ext_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_ext_in); 

      OracleParameter param_email_Addr_in = new OracleParameter("email_Addr_in", OracleType.VarChar); 
      param_email_Addr_in.Value = EmailAddress; 
      param_email_Addr_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_email_Addr_in); 

      OracleParameter param_ssn_in = new OracleParameter("ssn_in", OracleType.VarChar); 
      param_ssn_in.Value = SocialSecurityNumber; 
      param_ssn_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_ssn_in); 

      OracleParameter param_dob_in = new OracleParameter("dob_in", OracleType.VarChar); 
      param_dob_in.Value = DateOfBirth; 
      param_dob_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_dob_in); 

      OracleParameter param_dl_number_in = new OracleParameter("dl_number_in", OracleType.VarChar); 
      param_dl_number_in.Value = DriverLicenseNumber; 
      param_dl_number_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_dl_number_in); 

      OracleParameter param_dl_st_cd_in = new OracleParameter("dl_st_cd_in", OracleType.VarChar); 
      param_dl_st_cd_in.Value = DriverLicenseStateCode; 
      param_dl_st_cd_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_dl_st_cd_in); 

      OracleParameter param_poe_in = new OracleParameter("poe_in", OracleType.VarChar); 
      param_poe_in.Value = PlaceOfEmployment; 
      param_poe_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_poe_in); 

      OracleParameter param_start_date_in = new OracleParameter("start_date_in", OracleType.VarChar); 
      param_start_date_in.Value = EmploymentStartDate; 
      param_start_date_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_start_date_in); 

      OracleParameter param_income_in = new OracleParameter("income_in", OracleType.VarChar); 
      param_income_in.Value = TotalAnnualIncome; 
      param_income_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_income_in); 

      OracleParameter param_occupation_in = new OracleParameter("occupation_in", OracleType.VarChar); 
      param_occupation_in.Value = Occupation; 
      param_occupation_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_occupation_in); 

      OracleParameter param_rent_own_in = new OracleParameter("rent_own_in", OracleType.VarChar); 
      param_rent_own_in.Value = HousingStatus; 
      param_rent_own_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_rent_own_in); 

      OracleParameter param_store_cd_in = new OracleParameter("store_cd_in", OracleType.VarChar); 
      param_store_cd_in.Value = ShoppingStoreCode; 
      param_store_cd_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_store_cd_in); 

      OracleParameter param_sales_assoc_name_in = new OracleParameter("sales_assoc_name_in", OracleType.VarChar); 
      param_sales_assoc_name_in.Value = SaleRepresentativeName; 
      param_sales_assoc_name_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_sales_assoc_name_in); 

      OracleParameter param_co_fName_in = new OracleParameter("co_fName_in", OracleType.VarChar); 
      param_co_fName_in.Value = CoApp_FirstName; 
      param_co_fName_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_fName_in); 

      OracleParameter param_co_mi_in = new OracleParameter("co_mi_in", OracleType.VarChar); 
      param_co_mi_in.Value = CoApp_MiddleInitial; 
      param_co_mi_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_mi_in); 

      OracleParameter param_co_lName_in = new OracleParameter("co_lName_in", OracleType.VarChar); 
      param_co_lName_in.Value = CoApp_LastName; 
      param_co_lName_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_lName_in); 

      OracleParameter param_co_addr1_in = new OracleParameter("co_addr1_in", OracleType.VarChar); 
      param_co_addr1_in.Value = CoApp_HousingAddress1; 
      param_co_addr1_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_addr1_in); 

      OracleParameter param_co_addr2_in = new OracleParameter("co_addr2_in", OracleType.VarChar); 
      param_co_addr2_in.Value = CoApp_HousingAddress2; 
      param_co_addr2_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_addr2_in); 

      OracleParameter param_co_city_in = new OracleParameter("co_city_in", OracleType.VarChar); 
      param_co_city_in.Value = CoApp_HousingCity; 
      param_co_city_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_city_in); 

      OracleParameter param_co_st_cd_in = new OracleParameter("co_st_cd_in", OracleType.VarChar); 
      param_co_st_cd_in.Value = CoApp_HousingStateCode; 
      param_co_st_cd_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_st_cd_in); 

      OracleParameter param_co_zip_cd_in = new OracleParameter("co_zip_cd_in", OracleType.VarChar); 
      param_co_zip_cd_in.Value = CoApp_HousingZipCode; 
      param_co_zip_cd_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_zip_cd_in); 

      OracleParameter param_co_home_phone_in = new OracleParameter("co_home_phone_in", OracleType.VarChar); 
      param_co_home_phone_in.Value = CoApp_HomePhone; 
      param_co_home_phone_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_home_phone_in); 

      OracleParameter param_co_work_phone_in = new OracleParameter("co_work_phone_in", OracleType.VarChar); 
      param_co_work_phone_in.Value = CoApp_WorkPhone; 
      param_co_work_phone_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_work_phone_in); 

      OracleParameter param_co_ext_in = new OracleParameter("co_ext_in", OracleType.VarChar); 
      param_co_ext_in.Value = CoApp_WorkExtension; 
      param_co_ext_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_ext_in); 

      OracleParameter param_co_email_Addr_in = new OracleParameter("co_email_Addr_in", OracleType.VarChar); 
      param_co_email_Addr_in.Value = CoApp_EmailAddress; 
      param_co_email_Addr_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_email_Addr_in); 

      OracleParameter param_co_ssn_in = new OracleParameter("co_ssn_in", OracleType.VarChar); 
      param_co_ssn_in.Value = CoApp_SocialSecurityNumber; 
      param_co_ssn_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_ssn_in); 

      OracleParameter param_co_dob_in = new OracleParameter("co_dob_in", OracleType.VarChar); 
      param_co_dob_in.Value = CoApp_DateOfBirth; 
      param_co_dob_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_dob_in); 

      OracleParameter param_co_dl_number_in = new OracleParameter("co_dl_number_in", OracleType.VarChar); 
      param_co_dl_number_in.Value = CoApp_DriverLicenseNumber; 
      param_co_dl_number_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_dl_number_in); 

      OracleParameter param_co_dl_st_cd_in = new OracleParameter("co_dl_st_cd_in", OracleType.VarChar); 
      param_co_dl_st_cd_in.Value = CoApp_DriverLicenseStateCode; 
      param_co_dl_st_cd_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_dl_st_cd_in); 

      OracleParameter param_co_poe_in = new OracleParameter("co_poe_in", OracleType.VarChar); 
      param_co_poe_in.Value = CoApp_PlaceOfEmployment; 
      param_co_poe_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_poe_in); 

      OracleParameter param_co_start_date_in = new OracleParameter("co_start_date_in", OracleType.VarChar); 
      param_co_start_date_in.Value = CoApp_EmploymentStartDate; 
      param_co_start_date_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_start_date_in); 

      OracleParameter param_co_income_in = new OracleParameter("co_income_in", OracleType.VarChar); 
      param_co_income_in.Value = CoApp_TotalAnnualIncome; 
      param_co_income_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_income_in); 

      OracleParameter param_co_occupation_in = new OracleParameter("co_occupation_in", OracleType.VarChar); 
      param_co_occupation_in.Value = CoApp_TotalAnnualIncome; 
      param_co_occupation_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_occupation_in); 

      OracleParameter param_co_rent_own_in = new OracleParameter("co_rent_own_in", OracleType.VarChar); 
      param_co_rent_own_in.Value = CoApp_HousingStatus; 
      param_co_rent_own_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_co_rent_own_in); 

      OracleParameter param_ip_address_in = new OracleParameter("ip_address_in", OracleType.VarChar); 
      param_ip_address_in.Value = IPAddress; 
      param_ip_address_in.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_ip_address_in); 

      OracleParameter param_REQ_FINANCED_AMT_IN = new OracleParameter("REQ_FINANCED_AMT_IN", OracleType.VarChar); 
      param_REQ_FINANCED_AMT_IN.Value = RequestedFinanceAmount; 
      param_REQ_FINANCED_AMT_IN.Direction = ParameterDirection.Input; 
      oraCmd.Parameters.Add(param_REQ_FINANCED_AMT_IN); 

      OracleParameter param_o_cust_cd = new OracleParameter("o_cust_cd", OracleType.VarChar, 10); 
      param_o_cust_cd.Direction = ParameterDirection.Output; 
      oraCmd.Parameters.Add(param_o_cust_cd); 

      OracleParameter param_o_person_nr = new OracleParameter("o_person_nr", OracleType.Number); 
      param_o_person_nr.Direction = ParameterDirection.Output; 
      oraCmd.Parameters.Add(param_o_person_nr); 

在Oracle過程的參數,

PROCEDURE insCrApp (fName_in   IN VARCHAR2, 
        mi_in    IN VARCHAR2, 
        lName_in   IN VARCHAR2, 
        addr1_in   IN VARCHAR2, 
        addr2_in   IN VARCHAR2, 
        city_in    IN VARCHAR2, 
        st_cd_in   IN VARCHAR2, 
        zip_cd_in   IN VARCHAR2, 
        home_phone_in  IN VARCHAR2, 
        work_phone_in  IN VARCHAR2, 
        ext_in    IN VARCHAR2, 
        email_Addr_in  IN VARCHAR2, 
        ssn_in    IN VARCHAR2, 
        dob_in    IN VARCHAR2, 
        dl_number_in  IN VARCHAR2, 
        dl_st_cd_in   IN VARCHAR2, 
        poe_in    IN VARCHAR2, 
        start_date_in  IN VARCHAR2, 
        income_in   IN VARCHAR2, 
        occupation_in  IN VARCHAR2, 
        rent_own_in   IN VARCHAR2, 
        store_cd_in   IN VARCHAR2, 
        sales_assoc_name_in IN VARCHAR2, 
        co_fName_in   IN VARCHAR2, 
        co_mi_in   IN VARCHAR2, 
        co_lName_in   IN VARCHAR2, 
        co_addr1_in   IN VARCHAR2, 
        co_addr2_in   IN VARCHAR2, 
        co_city_in   IN VARCHAR2, 
        co_st_cd_in   IN VARCHAR2, 
        co_zip_cd_in  IN VARCHAR2, 
        co_home_phone_in IN VARCHAR2, 
        co_work_phone_in IN VARCHAR2, 
        co_ext_in   IN VARCHAR2, 
        co_email_Addr_in IN VARCHAR2, 
        co_ssn_in   IN VARCHAR2, 
        co_dob_in   IN VARCHAR2, 
        co_dl_number_in  IN VARCHAR2, 
        co_dl_st_cd_in  IN VARCHAR2, 
        co_poe_in   IN VARCHAR2, 
        co_start_date_in IN VARCHAR2, 
        co_income_in  IN VARCHAR2, 
        co_occupation_in IN VARCHAR2, 
        co_rent_own_in  IN VARCHAR2, 
        ip_address_in  IN VARCHAR2, 
        REQ_FINANCED_AMT_IN IN VARCHAR2, 
        o_cust_cd   OUT VARCHAR2, 
        o_person_nr  OUT NUMBER) 

請幫助,因爲我無法弄清楚是什麼問題,因爲它好像我沒有設定我的C#代碼中的數據類型正確的,雖然我希望OracleType.VarChar將映射罰款VARCHAR2 Oracle中。

感謝預期。

回答

0

正在重複以下參數。看起來像複製粘貼搞砸了。

OracleParameter param_fName_in = new OracleParameter("fName_in", OracleType.VarChar); 
OracleParameter param_mi_in = new OracleParameter("mi_in", OracleType.VarChar); 
OracleParameter param_lName_in = new OracleParameter("lName_in", OracleType.VarChar); 
OracleParameter param_addr1_in = new OracleParameter("addr1_in", OracleType.VarChar); 
OracleParameter param_addr2_in = new OracleParameter("addr2_in", OracleType.VarChar); 
OracleParameter param_city_in = new OracleParameter("city_in", OracleType.VarChar); 
+0

你確定他們重複嗎?可能你正在談論共同申請人的相同參數。所有以「coApp_」開頭的參數都與主申請人一起作爲共同申請人。例如,fName_in是主申請人名字,coapp_fName_in是共同申請人。 Oracle參數對象類似,param_fName_in用於主要,param_co_fName_in用於共同申請人,因此不需要重複。它完全符合oracle程序中的參數,但我仍然得到錯誤。 – 2010-09-28 20:01:37

+0

對不起,錯誤分析。正如你所說,它確實符合Oracle過程中的參數。一個問題,但。爲什麼要爲輸出參數指定精度「OracleParameter param_o_cust_cd = new OracleParameter(」o_cust_cd「,OracleType.VarChar,10);」 ? – 2010-09-28 20:15:28

+0

嗯,你是對的,但如果我不這樣做,它會錯誤地說,沒有爲輸出參數o_cust_cd指定大小。 – 2010-09-28 20:21:53

0

作爲參數出現匹配,與可能的查詢@Rajesh提出了關於爲o_cust_id被指定的尺寸,發生兩種可能性; (1)你確定你打的是正確的軟件包 - 在另一個模式中沒有不同的版本,而你可能正在拾取另一個模式的參數? (2)你專注於參數,但你確定過程調用是正確的嗎?也可能有助於發佈該代碼。

您是否嘗試過使用簡化案例 - 具有一個參數的過程 - 查看它是否像您期望的那樣使用OracleType.VarChar/VARCHAR2?