2010-09-28 1 views
1

J'ai essayé de résoudre ce problème, mais en vain. Je reçois une erreur en insérant un gros mandrin de données dans le paquet Oracle contenant la procédure 'INSCRAPP'. Le message d'erreur est,ORA-06550, PLS-00306; Erreur lors de l'insertion de données dans la procédure Oracle

ORA-06550: ligne 1, colonne 7: PLS-00306: mauvais numéro ou les types de arguments dans l'appel à 'INSCRAPP' ORA-06550: ligne 1, colonne 7: PL/SQL: Déclaration ignoré

Le code C# est grand, mais je fournit les paramètres je passe,

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); 

les paramètres Oracle procédure sont,

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) 

S'il vous plaît aider comme je ne pouvais pas comprendre quel est le problème car il semble que je ne déclenchaient pas le type de données correct dans mon code C# si je pense OracleType.VarChar serait bien la carte à VARCHAR2 Oracle.

En remerciant par anticipation.

Répondre

0

Les paramètres suivants sont répétés. On dirait que le copier-coller a été foiré.

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

Etes-vous sûr qu'ils sont répétés? Vous parlez probablement des mêmes paramètres pour le co-candidat. Tous les paramètres commençant par "coApp_" sont pour le co-demandeur avec le demandeur principal. Par exemple, fName_in est le nom du demandeur principal et coapp_fName_in est pour le codemandeur. De même pour l'objet de paramètre Oracle, param_fName_in est pour primary et param_co_fName_in pour co-demandeur, donc rien n'est répété. Il correspond parfaitement aux paramètres de la procédure Oracle mais je reçois toujours l'erreur. –

+0

Désolé, Mauvaise analyse. Comme vous l'avez dit, cela correspond aux paramètres de la procédure Oracle. Une question cependant. Pourquoi spécifiez-vous la précision du paramètre de sortie "OracleParameter param_o_cust_cd = new OracleParameter (" o_cust_cd ", OracleType.VarChar, 10);" ? –

+0

Eh bien, vous avez raison, mais si je ne le fais pas, il va falloir dire, la taille n'est pas spécifiée pour le paramètre de sortie o_cust_cd. –

0

Comme les paramètres semblent correspondre, avec la requête possible @Rajesh soulevée au sujet de la taille étant spécifiée pour o_cust_id, deux possibilités se produisent; (1) Êtes-vous sûr que vous utilisez ce bon package - qu'il n'existe pas de version différente avec des paramètres différents dans un autre schéma que vous pourriez choisir à la place? (2) vous vous êtes concentré sur les paramètres, mais êtes-vous sûr que l'appel de procédure est correct? Peut-être utile de publier ce code aussi.

Avez-vous essayé avec un cas réduit - une procédure avec un paramètre - pour voir que cela fonctionne comme prévu avec OracleType.VarChar/VARCHAR2?

Questions connexes