Oracle stored procedure via VB
Dette spørgsmål lægger sig måske lidt over imod Oracle, men jeg tror ikke at det er dér problemet ligger siden den procedure, jeg tester med era) meget simpel
b) virker fint ved en manuel kørsel
Min Oracle connection virker fint og en alm. SELECT m.v. virker uden problemer.
Når jeg kører SP'en via VB.net (se Sub længere nede får jeg flg. fejl):
ORA-06502: PL/SQL: numeric or value error
ORA-06512: at "TT.TEST_PACKAGE", line 41
ORA-06512: at line 1
Kort fortalt, så har jeg leget mere med Oracle end jeg har med VB.net, så... sandssynligvis misser jeg ét eller andet. Jeg har følgende Sub som skal kalde SP'en - basically bare for at teste om det spiller:
Public Sub InitializeUser(ByVal sUsername As String)
Dim cmd As New OracleCommand()
cmd.Connection = Me.Conn
cmd.CommandText = "tt.test_package.get_user_info"
cmd.CommandType = CommandType.StoredProcedure
Dim initials As OracleParameter = New OracleParameter("i_username", OracleDbType.Varchar2)
initials.Direction = ParameterDirection.Input
initials.Value = sUsername
MessageBox.Show(initials.Value) ' debug for at se værdi
Dim fullname As OracleParameter = New OracleParameter("o_fullname", OracleDbType.Varchar2)
fullname.Direction = ParameterDirection.Output
Dim userrole As OracleParameter = New OracleParameter("o_role", OracleDbType.Varchar2)
userrole.Direction = ParameterDirection.Output
cmd.Parameters.Add(initials)
cmd.Parameters.Add(fullname)
cmd.Parameters.Add(userrole)
cmd.ExecuteNonQuery()
sFullname = fullname.Value
sRole = userrole.Value
End Sub
Her er min procedure, bare for god ordens skyld:
PROCEDURE get_user_info(i_username IN VARCHAR2,
o_fullname OUT VARCHAR2,
o_role OUT VARCHAR2) IS
BEGIN
SELECT u.fullname, u.userrole /* dette er linie 41 som "fejler" */
INTO o_fullname, o_role
FROM tt.users u
WHERE u.username = i_username;
END;
jeg håber nogen kan bringe mig på sporet.