Oracle
 sql >> Datenbank >  >> RDS >> Oracle

So stellen Sie eine Verbindung zu Oracle als SYS von SQL*Plus in Java her

Sie übergeben alle Verbindungsinformationen als einen einzigen Wert; Äquivalent dazu von einer Befehlszeile:

sqlplus "sys as sysdba/[email protected]<connect_string>"

was die gleiche Antwort erhalten würde wie das Drucken der SQL*Plus-Anmeldehilfe. Sie haben auch Ihr Passwort an der falschen Stelle, aber so weit kommt es nicht. Von einer Befehlszeile aus würde dies funktionieren:

sqlplus "sys/tiger" "as" "[email protected]<connect_string>"

Sie müssen also 5 Argumente an ProcessBuilder übergeben , etwas wie:

    String sqlCmd = "sqlplus";  
    String arg1   = "sys/tiger";
    String arg2   = "as";
    String arg3   = "[email protected](DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(Host=hostname)(Port=PORT ID))(CONNECT_DATA=(SID=SID)))";
    String arg4   = fileName;
    ...
        ProcessBuilder pb = new ProcessBuilder(sqlCmd, arg1, arg2, arg3, arg4);

Dies funktioniert weiterhin nur, wenn Ihre Umgebung so konfiguriert ist, dass eine Remote-Verbindung als sysdba zugelassen wird . Alles als sys tun sollte sehr selten sein und ein Skript haben, das Sie als sys ausführen möchten ungewöhnlich genug erscheinen, dass ein Java-Wrapper wie ein Overkill wirkt - und es so aussehen lässt, als würden Sie sich als sys verbinden routinemäßig, was keine gute Idee ist - aber vielleicht ist dies nur eine Lernübung.