sql >> Database >  >> RDS >> Oracle

hoe meerdere Oracle-query's c# uit te voeren

Hoewel u namen voor uw parameters gebruikt, behandelt uw stuurprogramma ze positioneel. Je kunt het een beetje zien omdat het (bijna) overeenkomt met :1 met de naam p_cr1 - '1' is geen geldige naam. Het klaagt niet omdat het positioneel overeenkomt - maar dat betekent dat het de P_para probeert te gebruiken voor :1 , en omdat het type fout is, verklaart dat de fout die je ziet.

Er is misschien een manier om het gedrag van de driver te veranderen, maar voorlopig kun je de volgorde waarin je ze bindt omwisselen - zodat de bindingen plaatsvinden in dezelfde volgorde (positie) als de variabelen in de query. Dus:

cmd.Parameters.Add("p_cr1", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);
cmd.Parameters.Add(new OracleParameter(":P_para", OracleDbType.Int64)).Value = Convert.ToInt64(Textbox.Text);
cmd.Parameters.Add("p_cr2", OracleDbType.RefCursor, DBNull.Value, ParameterDirection.Output);



  1. Maak meerdere invoer in mysql-tabel tegelijk met één verzendknop

  2. mysql maak gebruiker alleen aan als de gebruiker niet bestaat

  3. Hoe een externe MySQL-server die op Ubuntu linux draait opnieuw te starten?

  4. NHibernate.Mapping-uitzondering. Geen persistenter voor Namespace.className