sql >> Database >  >> RDS >> Oracle

Verbinding maken met Oracle als SYS vanuit SQL*Plus in Java

U geeft alle verbindingsinformatie door als een enkele waarde; equivalent aan dit vanaf een opdrachtregel:

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

die hetzelfde antwoord zou krijgen als het afdrukken van de SQL*Plus-aanmeldingshulp. Je hebt ook je wachtwoord op de verkeerde plek staan, maar zo ver komt het niet. Vanaf een opdrachtregel zou dit werken:

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

dus je moet 5 argumenten doorgeven aan ProcessBuilder , zoiets als:

    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);

Dit werkt nog steeds alleen als uw omgeving is geconfigureerd om externe verbinding toe te staan ​​als sysdba . Iets doen als sys zou zeer zeldzaam moeten zijn, en met een script dat u wilt uitvoeren als sys lijkt ongebruikelijk genoeg voor een Java-wrapper om overdreven te lijken - en het lijkt alsof u verbinding maakt als sys routinematig, wat geen goed idee is, maar misschien is dit slechts een leeroefening.



  1. Hoe gezond is uw SQL-server? Proactieve databasebewaking is van cruciaal belang

  2. Kan kolom dbo of de door de gebruiker gedefinieerde functie of geaggregeerde dbo.Splitfn niet vinden, of de naam is dubbelzinnig

  3. 🆕 Eerste overzicht van SQL Server 2022 - Top 5 nieuwe functies (Bonus 5-functies)

  4. MariaDB FOUND_ROWS() uitgelegd