Need Help! I am new in executing function in a stored procedure package, I need to execute this package using oracle C# windows application..

```
 CREATE OR REPLACE PACKAGE TSCBE1005_PKG IS

FUNCTION TSCBE1005_001_FNC( P_BLD_LVL_CD         IN VARCHAR2,
                            P_IN_DATE            IN VARCHAR2,
                            P_IN_PC              IN VARCHAR2,
                            P_BLD_SPEC_NO        IN OUT VARCHAR2,
                            P_BLD_SPEC_NO_SEQ    IN OUT NUMBER,
                            P_ART_NO             IN OUT VARCHAR2`,
                            P_CURE_KIBN          IN OUT VARCHAR2,
                            P_CURE_LR_KBN        IN OUT VARCHAR2,
                            P_HINMEI             IN OUT VARCHAR2,
                            P_TIRE_SIZE          IN OUT VARCHAR2,
                            P_E4_MARK            IN OUT NUMBER,
                            P_SECTOR_NO          IN OUT VARCHAR2,
                            P_UPLATE_NO          IN OUT VARCHAR2,
                            P_LPLATE_NO          IN OUT VARCHAR2,
                            P_BLADER_NO          IN OUT VARCHAR2,
                            P_MAX_TCLC_SINGLE    IN OUT NUMBER,
                            P_TCLC_UNIT_SINGLE   IN OUT VARCHAR2,
                            P_MAX_IP_SINGLE      IN OUT NUMBER,
                            P_IP_UNIT_SINGLE     IN OUT VARCHAR2,
                            P_PR                 IN OUT NUMBER,
                            P_MSG                IN OUT VARCHAR2
                            ) RETURN NUMBER;

PROCEDURE TSCBE1005_002_PRC( P_RET_DATA           IN NUMBER,
                             P_INFO1              IN VARCHAR2,
                             P_INFO2              IN VARCHAR2,
                             P_IN_PC              IN VARCHAR2
                             ) ;
END TSCBE1005_PKG;

```

When I'm running it to Oracle, using script below, it's actually successful.

```
variable O_BLD_SPEC_NO        VARCHAR2(7)
variable O_BLD_SPEC_NO_SEQ    NUMBER
variable O_ART_NO             VARCHAR2(5)
variable O_CURE_KIBN          VARCHAR2(4)
variable O_CURE_LR_KBN        VARCHAR2(1)
variable O_HINMEI             VARCHAR2(50)
variable O_TIRE_SIZE          VARCHAR2(20)
variable O_E4_MARK            NUMBER
variable O_SECTOR_NO          VARCHAR2(6)
variable O_UPLATE_NO          VARCHAR2(6)
variable O_LPLATE_NO          VARCHAR2(6)
variable O_BLADER_NO          VARCHAR2(7)
variable O_MAX_TCLC_SINGLE    NUMBER
variable O_TCLC_UNIT_SINGLE   VARCHAR2(3)
variable O_MAX_IO_SINGLE      NUMBER
variable O_IO_UNIT_SINGLE     VARCHAR2(3)
variable O_PR                 NUMBER
variable O_MSG                VARCHAR2(20)
variable ret                  varchar2(100)

execute :ret := TSCBE1005_PKG.TSCBE1005_001_FNC('R123456789','20170124120644','YRC07400',:O_BLD_SPEC_NO,:O_BLD_SPEC_NO_SEQ,:O_ART_NO,:O_CURE_KIBN,:O_CURE_LR_KBN,:O_HINMEI,:O_TIRE_SIZE,:O_E4_MARK,:O_SECTOR_NO,:O_UPLATE_NO,:O_LPLATE_NO,:O_BLADER_NO,:O_MAX_TCLC_SINGLE,:O_TCLC_UNIT_SINGLE,:O_MAX_IO_SINGLE,:O_IO_UNIT_SINGLE,:O_PR,:O_MSG)
;
print O_BLD_SPEC_NO      
print O_BLD_SPEC_NO_SEQ  
print O_ART_NO           
print O_CURE_KIBN        
print O_CURE_LR_KBN      
print O_HINMEI           
print O_TIRE_SIZE        
print O_E4_MARK          
print O_SECTOR_NO        
print O_UPLATE_NO        
print O_LPLATE_NO        
print O_BLADER_NO        
print O_MAX_TCLC_SINGLE  
print O_TCLC_UNIT_SINGLE 
print O_MAX_IO_SINGLE    
print O_IO_UNIT_SINGLE   
print O_PR               
print O_MSG              
print ret                

```

I tried to execute this in C# oracle using below code,

```
        using (OracleConnection objConn = new OracleConnection("User    id=skraze; Password=skraze; Data source=database"))
        {
            objConn.Open();

            OracleCommand objCmd = new OracleCommand();
            objCmd.Connection = objConn;
            objCmd.CommandText = "TSCBE1005_PKG.TSCBE1005_001_FNC";
            objCmd.CommandType = CommandType.StoredProcedure;

            OracleParameter P_BLD_LVL_CD = new OracleParameter();
            P_BLD_LVL_CD.ParameterName = ":P_BLD_LVL_CD";
            P_BLD_LVL_CD.OracleType = OracleType.VarChar;
            P_BLD_LVL_CD.Direction = ParameterDirection.Input;
            P_BLD_LVL_CD.Value = "R123456789";
            objCmd.Parameters.Add(P_BLD_LVL_CD);

            OracleParameter P_IN_DATE = new OracleParameter();
            P_IN_DATE.ParameterName = ":P_IN_DATE";
            P_IN_DATE.OracleType = OracleType.VarChar;
            P_IN_DATE.Direction = ParameterDirection.Input;
            P_IN_DATE.Value = "20170124120644";
            objCmd.Parameters.Add(P_IN_DATE);

            OracleParameter P_IN_PC = new OracleParameter();
            P_IN_PC.ParameterName = ":P_IN_PC";
            P_IN_PC.OracleType = OracleType.VarChar;
            P_IN_PC.Direction = ParameterDirection.Input;
            P_IN_PC.Value = "YRC07400";
            objCmd.Parameters.Add(P_IN_PC);

            OracleParameter P_BLD_SPEC_NO = new OracleParameter();
            P_BLD_SPEC_NO.ParameterName = ":P_BLD_SPEC_NO";
            P_BLD_SPEC_NO.OracleType = OracleType.VarChar;
            P_BLD_SPEC_NO.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_BLD_SPEC_NO);

            OracleParameter P_BLD_SPEC_NO_SEQ = new OracleParameter();
            P_BLD_SPEC_NO_SEQ.ParameterName = ":P_BLD_SPEC_NO_SEQ";
            P_BLD_SPEC_NO_SEQ.OracleType = OracleType.Number;
            P_BLD_SPEC_NO_SEQ.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_BLD_SPEC_NO_SEQ);

            OracleParameter P_ART_NO = new OracleParameter();
            P_ART_NO.ParameterName = ":P_ART_NO";
            P_ART_NO.OracleType = OracleType.VarChar;
            P_ART_NO.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_ART_NO);

            OracleParameter P_CURE_KIBN = new OracleParameter();
            P_CURE_KIBN.ParameterName = ":P_CURE_KIBN";
            P_CURE_KIBN.OracleType = OracleType.VarChar;
            P_CURE_KIBN.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_CURE_KIBN);

            OracleParameter P_CURE_LR_KBN = new OracleParameter();
            P_CURE_LR_KBN.ParameterName = ":P_CURE_LR_KBN";
            P_CURE_LR_KBN.OracleType = OracleType.VarChar;
            P_CURE_LR_KBN.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_CURE_LR_KBN);

            OracleParameter P_HINMEI = new OracleParameter();
            P_HINMEI.ParameterName = ":P_HINMEI";
            P_HINMEI.OracleType = OracleType.VarChar;
            P_HINMEI.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_HINMEI);

            OracleParameter P_TIRE_SIZE = new OracleParameter();
            P_TIRE_SIZE.ParameterName = ":P_TIRE_SIZE";
            P_TIRE_SIZE.OracleType = OracleType.VarChar;
            P_TIRE_SIZE.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_TIRE_SIZE);

            OracleParameter P_E4_MARK = new OracleParameter();
            P_E4_MARK.ParameterName = ":P_E4_MARK";
            P_E4_MARK.OracleType = OracleType.Number;
            P_E4_MARK.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_E4_MARK);

            OracleParameter P_SECTOR_NO = new OracleParameter();
            P_SECTOR_NO.ParameterName = ":P_SECTOR_NO";
            P_SECTOR_NO.OracleType = OracleType.VarChar;
            P_SECTOR_NO.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_SECTOR_NO);

            OracleParameter P_UPLATE_NO = new OracleParameter();
            P_UPLATE_NO.ParameterName = ":P_UPLATE_NO";
            P_UPLATE_NO.OracleType = OracleType.VarChar;
            P_UPLATE_NO.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_UPLATE_NO);

            OracleParameter P_LPLATE_NO = new OracleParameter();
            P_LPLATE_NO.ParameterName = ":P_LPLATE_NO";
            P_LPLATE_NO.OracleType = OracleType.VarChar;
            P_LPLATE_NO.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_LPLATE_NO);

            OracleParameter P_BLADER_NO = new OracleParameter();
            P_BLADER_NO.ParameterName = ":P_BLADER_NO";
            P_BLADER_NO.OracleType = OracleType.VarChar;
            P_BLADER_NO.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_BLADER_NO);

            OracleParameter P_MAX_TCLC_SINGLE = new OracleParameter();
            P_MAX_TCLC_SINGLE.ParameterName = ":P_MAX_TCLC_SINGLE";
            P_MAX_TCLC_SINGLE.OracleType = OracleType.Number;
            P_MAX_TCLC_SINGLE.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_MAX_TCLC_SINGLE);

            OracleParameter P_TCLC_UNIT_SINGLE = new OracleParameter();
            P_TCLC_UNIT_SINGLE.ParameterName = ":P_TCLC_UNIT_SINGLE";
            P_TCLC_UNIT_SINGLE.OracleType = OracleType.VarChar;
            P_TCLC_UNIT_SINGLE.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_TCLC_UNIT_SINGLE);

            OracleParameter P_MAX_IO_SINGLE = new OracleParameter();
            P_MAX_IO_SINGLE.ParameterName = ":P_MAX_IO_SINGLE";
            P_MAX_IO_SINGLE.OracleType = OracleType.Number;
            P_MAX_IO_SINGLE.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_MAX_IO_SINGLE);

            OracleParameter P_IO_UNIT_SINGLE = new OracleParameter();
            P_IO_UNIT_SINGLE.ParameterName= ":P_IO_UNIT_SINGLE";
            P_IO_UNIT_SINGLE.OracleType = OracleType.VarChar;
            P_IO_UNIT_SINGLE.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_IO_UNIT_SINGLE);

            OracleParameter P_PR = new OracleParameter();
            P_PR.ParameterName = ":P_PR";
            P_PR.OracleType = OracleType.Number;
            P_PR.Direction = ParameterDirection.Input;
            objCmd.Parameters.Add(P_PR);

            OracleParameter W_BLD_SPEC_NO = new OracleParameter();
            W_BLD_SPEC_NO.OracleType = OracleType.VarChar;
            W_BLD_SPEC_NO.Size = 7;
            W_BLD_SPEC_NO.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_BLD_SPEC_NO);

            OracleParameter W_BLD_SPEC_NO_SEQ = new OracleParameter();
            W_BLD_SPEC_NO_SEQ.OracleType = OracleType.Number;
            W_BLD_SPEC_NO_SEQ.Size = 1;
            W_BLD_SPEC_NO_SEQ.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_BLD_SPEC_NO_SEQ);

            OracleParameter W_ART_NO = new OracleParameter();
            W_ART_NO.OracleType = OracleType.VarChar;
            W_ART_NO.Size = 5;
            W_ART_NO.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_ART_NO);

            OracleParameter W_CURE_KIBN = new OracleParameter();
            W_CURE_KIBN.OracleType = OracleType.VarChar;
            W_CURE_KIBN.Size = 4;
            W_CURE_KIBN.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_CURE_KIBN);

            OracleParameter W_CURE_LR_KBN = new OracleParameter();
            W_CURE_LR_KBN.OracleType = OracleType.VarChar;
            W_CURE_LR_KBN.Size = 1;
            W_CURE_LR_KBN.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_CURE_LR_KBN);

            OracleParameter W_HINMEI = new OracleParameter();
            W_HINMEI.OracleType = OracleType.VarChar;
            W_HINMEI.Size = 50;
            W_HINMEI.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_HINMEI);

            OracleParameter W_TIRE_SIZE = new OracleParameter();
            W_TIRE_SIZE.OracleType = OracleType.VarChar;
            W_TIRE_SIZE.Size = 20;
            W_TIRE_SIZE.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_TIRE_SIZE);

            OracleParameter W_E4_MARK = new OracleParameter();
            W_E4_MARK.OracleType = OracleType.Number;
            W_E4_MARK.Size = 1;
            W_E4_MARK.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_E4_MARK);

            OracleParameter W_SECTOR_NO = new OracleParameter();
            W_SECTOR_NO.OracleType = OracleType.VarChar;
            W_SECTOR_NO.Size = 6;
            W_SECTOR_NO.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_SECTOR_NO);

            OracleParameter W_UPLATE_NO = new OracleParameter();
            W_UPLATE_NO.OracleType = OracleType.VarChar;
            W_UPLATE_NO.Size = 6;
            W_UPLATE_NO.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_UPLATE_NO);

            OracleParameter W_LPLATE_NO = new OracleParameter();
            W_LPLATE_NO.OracleType = OracleType.VarChar;
            W_LPLATE_NO.Size = 6;
            W_LPLATE_NO.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_LPLATE_NO);

            OracleParameter W_BLADER_NO = new OracleParameter();
            W_BLADER_NO.OracleType = OracleType.VarChar;
            W_BLADER_NO.Size = 7;
            W_BLADER_NO.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_BLADER_NO);

            OracleParameter W_MAX_TCLC_SINGLE = new OracleParameter();
            W_MAX_TCLC_SINGLE.OracleType = OracleType.Number;
            W_MAX_TCLC_SINGLE.Size = 1;
            W_MAX_TCLC_SINGLE.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_MAX_TCLC_SINGLE);

            OracleParameter W_TCLC_UNIT_SINGLE = new OracleParameter();
            W_TCLC_UNIT_SINGLE.OracleType = OracleType.VarChar;
            W_TCLC_UNIT_SINGLE.Size = 3;
            W_TCLC_UNIT_SINGLE.Direction =     ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_TCLC_UNIT_SINGLE);

            OracleParameter W_MAX_IO_SINGLE = new OracleParameter();
            W_MAX_IO_SINGLE.OracleType = OracleType.Number;
            W_MAX_IO_SINGLE.Size = 1;
            W_MAX_IO_SINGLE.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_MAX_IO_SINGLE);

            OracleParameter W_IO_UNIT_SINGLE = new OracleParameter();
            W_IO_UNIT_SINGLE.OracleType = OracleType.VarChar;
            W_IO_UNIT_SINGLE.Size = 3;
            W_IO_UNIT_SINGLE.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_IO_UNIT_SINGLE);

            OracleParameter W_PR = new OracleParameter();
            W_PR.OracleType = OracleType.Number;
            W_PR.Size = 1;
            W_PR.Direction = ParameterDirection.ReturnValue;
            objCmd.Parameters.Add(W_PR);

            objCmd.ExecuteNonQuery();

            objConn.Close();

        }

```

But I'm still getting error

```
{"ORA-06550: line 1, column 34:\nPLS-00103: Encountered the symbol \"=\" when expecting one of the following:\n\n   . ( * @ % & = - + ; < / > at in is mod not rem\n   <an exponent (**)> <> or != or ~= >= <= <> and or like\n   between || indicator\n"}

```

Please, I hope anyone could help me :(