Oracle Funktion mit mehreren Out Parametern ausführen?

Disaster2k

Mitglied
Hi,

ich will diese Oracle Funktion in meine Java Programm ausführen:

Code:
 FUNCTION f_insertBenutzerTitel
    ( pi_s_userid                     IN  sec_user.userid%TYPE
    , pi_s_titel                      IN  VARCHAR2
    , pi_n_person_id                  IN  sec_user.person_id%TYPE := NULL
    , po_s_errortext                 OUT  VARCHAR2
    , po_s_errorpos                  OUT  VARCHAR2               
    ) RETURN NUMBER;

Geht das mit Hibernate oder irgendwie anders? Ich hab es mit Hibernate + NamedQuery probiert. Aber leider ohne erfolg.

Wäre super wenn mir jemand einen Tipp geben kann.

Danke
 
Zuletzt bearbeitet von einem Moderator:

Disaster2k

Mitglied
Hi, habe die Abfrage jetzt mal so zum laufen bekommen:

Java:
 Session session = HibernateUtil.getSessionFactory().openSession();
	CallableStatement cs = null;
        int ret = -1;

	if(session == null)
            System.out.println("No session");
	else
	    System.out.println("Session oppen");

	Transaction tx = session.beginTransaction();

	Connection conn = session.connection();
	try {
            cs = conn.prepareCall("{? = call f_insertBenutzerTitel(?, ?, ?, ?, ?)}");
            cs.registerOutParameter(1, Types.INTEGER);
	    cs.setString(2, "stift");
	    cs.setInt(3, 5982);
	    cs.setInt(4, 45);
            cs.registerOutParameter(5, Types.VARCHAR);
            cs.registerOutParameter(6, Types.VARCHAR);
	    cs.execute();
            ret = cs.getInt(1);
            String errortext = cs.getString(5);
            String errorpos = cs.getString(6);
            System.out.println(errortext + ": " + errorpos + " -> " + ret);

	} catch (SQLException ex) {
           
	}

	tx.commit();

        return ret;

Meine offenen Fragen:

- Kann man den Parametern auch einen namen geben das man nicht mit dem index drauf zugreifen muss?
- Was ist wenn eine Parameter (hier der Nr. 3) "optional ist" also entweder weggelassen werden kann oder mit Null übergeben werden soll wenn nicht benötigt. Wie übergebe ich in dem Fall NULL.

Danke
 

jstei001

Aktives Mitglied
mit [c] cs.setNull(index, sql.Types.INTEGER);[/c] z.B. ein Integer auf null setzen. Parameternamen kannst du nicht vergeben aber ud könntest sowas machen

Java:
int value1 = 1

statement.setString(value1,"aaa");
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
DeltaPilot12 Datenbank connect Funktion Datenbankprogrammierung 7
N SQLite Hibernate und Aufruf von Funktion SELECT last_insert_rowid() Datenbankprogrammierung 2
Streeber MySQL Funktion gesucht, die angibt, wie oft ein Wert auftritt Datenbankprogrammierung 1
E Wie kann ich aus diesem XML eine XMLTABLE-Funktion bauen? Datenbankprogrammierung 3
P PreparedStatement IN-Funktion Datenbankprogrammierung 8
X JDBC Verbindung in einer Funktion Datenbankprogrammierung 9
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
N Funktion um einen Wert in einem ResultSet zu finden ? Datenbankprogrammierung 5
P Java und Oracle Funktion Datenbankprogrammierung 8
G Funktion in einer Oracle-DB aufrufen Datenbankprogrammierung 3
J Zahlungseingänge von mehreren Kunden wie am besten abbilden in der Datenbank ? Datenbankprogrammierung 8
E SQLite Datenbank durchsuchen mit mehreren Suchbegriffen Datenbankprogrammierung 10
S MySQL Befüllen von mehreren Spalten Datenbankprogrammierung 1
I JPA Liste mit mehreren Entitäten Datenbankprogrammierung 22
R Transaktionen von mehreren Anwendungen aus - JDBC Datenbankprogrammierung 3
M Problem mit mehreren Datasourcen Datenbankprogrammierung 3
L MySQL Datenbank beschreiben mit mehreren Threads Datenbankprogrammierung 18
0 Filtern nach mehreren Kriterien Datenbankprogrammierung 4
S Embedded DB, die aus mehreren JVMs gestartet werden kann? Datenbankprogrammierung 10
H Group By mit mehreren Spalten Datenbankprogrammierung 2
S Verständnisproblem mit mehreren DAOs Datenbankprogrammierung 7
S Verkettung von Spalteninhalten aus mehreren Zeilen Datenbankprogrammierung 10
D aus mehreren sql tabellen matchen und sortieren Datenbankprogrammierung 6
P [Hibernate] Zwischentabelle mit mehreren Feldern Datenbankprogrammierung 7
C Hibernate-Mapping bei mehreren FK´s auf die selbe Tabelle Datenbankprogrammierung 12
J JDBC mit mehreren Threads. Datenbankprogrammierung 8
T [jdbc] einen Eintrag aus mehreren Tabellen löschen (Batch) Datenbankprogrammierung 3
R SQL Abfrage, je nach ausgewählten Parametern Datenbankprogrammierung 11

Ähnliche Java Themen

Neue Themen


Oben