Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Web Development
  3. ASP.NET
  4. Why OleDbCommand call oracle9i user function success,but OleDbCommand call failed.

Why OleDbCommand call oracle9i user function success,but OleDbCommand call failed.

Scheduled Pinned Locked Moved ASP.NET
databaseoraclehelp
1 Posts 1 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • O Offline
    O Offline
    Old Gun
    wrote on last edited by
    #1

    /* This is my oracle function */ create or replace function EngUnitConvert(sSrcEng in varchar2, sDstEng in varchar2) return number is AtLeastLostOneCoefficient exception; vSrcEng Number; vDstEng Number; vValue Number; BEGIN begin -- Get source SELECT Mult_Fctr INTO vSrcEng From ip_eng_unit t WHERE t.units = UPPER(sSrcEng); dbms_output.put_line('Source Coefficient :' || to_char(vSrcEng)); -- Get destination SELECT Mult_Fctr INTO vDstEng From ip_eng_unit t WHERE t.units = UPPER(sDstEng); dbms_output.put_line('Destination Coefficient :' || to_char(vDstEng)); if ((vSrcEng is null) or (vDstEng is null)) then dbms_output.put_line('At Least Lost One Coefficient!'); raise AtLeastLostOneCoefficient; else vValue := vDstEng / vSrcEng; dbms_output.put_line('Result Coefficient :' || to_char(vValue)); end if; dbms_output.put_line('Finished!'); return vValue; end; exception when AtLeastLostOneCoefficient then null; WHEN OTHERS THEN NULL; END; /* This is my OleDbCommand call,but it failed */ // here OleDbConnecton have opened OleDbCommand sqlcmd = new OleDbCommand(); sqlcmd.CommandText = "unitconvert"; sqlcmd.CommandType = CommandType.StoredProcedure; sqlcmd.Connection = olecn;// olecn -- OleDbConnecton OleDbParameter ps = new OleDbParameter("s_from_eng",System.Data.OleDb.OleDbType.VarChar,32); ps.Direction = System.Data.ParameterDirection.Input; ps.Value = sFromUnit; OleDbParameter pd = new OleDbParameter("s_from_eng",System.Data.OleDb.OleDbType.VarChar,32); pd.Direction = System.Data.ParameterDirection.Input; pd.Value = sToUnit; OleDbParameter pr = new OleDbParameter("vvalue",System.Data.OleDb.OleDbType.Numeric,16); pr.Direction = System.Data.ParameterDirection.ReturnValue; sqlcmd.Parameters.Add(ps); sqlcmd.Parameters.Add(pd); sqlcmd.Parameters.Add(pr); sqlcmd.ExecuteNonQuery(); string sValue = sqlcmd.Parameters["vValue"].Value.ToString(); /* The error messages is: */ ORA-06550: line 1, column 7:\nPLS-00201: identifier 'UNITCONVERT' must be declared\nORA-06550: line 1, column 7:\nPL/SQL: Statement ignored /* Here is OracleDbCommand call,it success */ OracleConnection orcn=new OracleConnection("user id=totalplant;data source=totalplant;password=totalplant"); OracleCommand cmd=new OracleCommand("unitconvert",orcn); cmd.CommandType=CommandType.StoredProcedu

    1 Reply Last reply
    0
    Reply
    • Reply as topic
    Log in to reply
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes


    • Login

    • Don't have an account? Register

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • World
    • Users
    • Groups