Wrong number or types of argument error while calling stored procedure

Viewed 66

The code below sends the values ​​entered in the text box to the oracle database in a list

And this list call oracle procedure.

I would like to send the values ​​returned from this list into a gridview.

   public void gridDoldur()
            {

                var seciliProsedur = "Z_LABEL_PRINTER.LabelPieceList";

                List<string> gridList = OraclePieceList();
 using (OracleConnection con = new OracleConnection(connectionString))
            {
                OracleCommand cmd = new OracleCommand(seciliProsedur, con);
                con.Open();
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.Add("p_piece_id", OracleDbType.Varchar2).Value = gridList;
                cmd.Parameters.Add("p_rc",OracleDbType.RefCursor).DirectionParameterDirection.Output;
                OracleDataAdapter da = new OracleDataAdapter(cmd);
                OracleCommandBuilder commandBuilder = new OracleCommandBuilder(da);
                DataTable dt = new DataTable();
                da.Fill(dt);
                this.gridPieceList.Visible = true;
                gridPieceList.DataSource = dt;
            }
            conn.Close();

        }

        public List<string> OraclePieceList()
        {

            List<string> pieces = new List<string>();
            for (int i = 0; i < txtListe.Lines.Count(); i++)
            {
                pieces.Add(txtListe.Lines[i]);
            }

            return pieces;
        }

Oracle Procedure : Declaration

 CREATE OR REPLACE PACKAGE Z_LABEL_PRINTER
AS
TYPE t_piece_id IS TABLE OF piece.PIECE_ID %type index by pls_integer; 
PROCEDURE LabelPieceList (p_piece_id IN t_piece_id,
p_rc IN OUT sys_refcursor);
END Z_LABEL_PRINTER;

Body :

CREATE OR REPLACE PACKAGE BODY .Z_LABEL_PRINTER
AS
PROCEDURE LabelPieceList(p_piece_id IN t_piece_id,
p_rc IN OUT sys_refcursor)

as
BEGIN
    OPEN p_rc FOR
    SELECT * FROM piece WHERE PIECE_ID IN (SELECT * FROM TABLE(p_piece_id));
    END;
-- Package body
END Z_LABEL_PRINTER;

But i encountered this error :

ORA-06550: line 1, column 7: PLS-00306: wrong number or types of arguments in call to 'LabelPieceList'

0 Answers
Related