Avatar billede swaq Nybegynder
19. april 2004 - 12:45 Der er 3 kommentarer og
1 løsning

Stored procedures og functioner database

Hejsa

Kan det lade sig gøre, at kalde stored procedures og/eller funktioner i en given database server fra java?
I PostgreSQL kan man eksempelvis oprette en funktion, men hvordan kalder jeg den funktion fra java - kan det overhovedet lade sig gøre?
Avatar billede arne_v Ekspert
19. april 2004 - 12:56 #1
Ja.

Stored procedures kaldes med em CallableStatement.

Function ville jeg tro  bare blev brugt i hvilken som helst SQL sætning.
Avatar billede arne_v Ekspert
19. april 2004 - 12:58 #2
SQLServer eksempel:


CREATE PROCEDURE TEST_MULTIOUT
@inarg INTEGER,
@outarg INTEGER OUTPUT
AS
SELECT @outarg = 123
SELECT * FROM T1
SELECT * FROM T1
RETURN -@inarg


import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Types;

public class UseSP {
    public static void main(String[] args) throws Exception {
        Class.forName("com.sybase.jdbc2.jdbc.SybDriver");
        Connection con = DriverManager.getConnection("jdbc:sybase:Tds:arnepc2:5000", "sa", "");
        con.setCatalog("Test");
        CallableStatement cstmt = con.prepareCall("{? = CALL TEST_MULTIOUT(?,?)}");
        cstmt.registerOutParameter(1, Types.INTEGER);
        cstmt.setInt(2, 5);
        cstmt.registerOutParameter(3, Types.INTEGER);
        cstmt.execute();
        while(cstmt.getMoreResults()) {
            ResultSet rs = cstmt.getResultSet();
            while(rs.next()) {
                System.out.println(rs.getInt(1) + " " + rs.getString(2));
            }
        }
        System.out.println("return value = " + cstmt.getInt(1));
        System.out.println("out parameter = " + cstmt.getInt(3));
        cstmt.close();
        con.close();
    }
}
Avatar billede swaq Nybegynder
19. april 2004 - 13:28 #3
Super Arne, du er en sveske - læg et svar...
Avatar billede arne_v Ekspert
19. april 2004 - 13:33 #4
svar
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester