sql >> Databasteknik >  >> RDS >> Oracle

Hur man ansluter till Oracle som SYS från SQL*Plus i Java

Du skickar all anslutningsinformation som ett enda värde; motsvarande detta från en kommandorad:

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

som skulle få samma svar som att skriva ut SQL*Plus-inloggningshjälpen. Du har också ditt lösenord på fel ställe men det kommer inte så långt. Från en kommandorad skulle detta fungera:

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

så du måste skicka 5 argument till ProcessBuilder , något i stil med:

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

Detta fungerar fortfarande bara om din miljö är konfigurerad att tillåta fjärranslutning som sysdba . Gör vad som helst som sys bör vara mycket sällsynt och ha ett skript som du vill köra som sys verkar ovanligt nog för att ett Java-omslag ska verka som överdrivet - och får det att verka som att du kan ansluta som sys rutinmässigt, vilket inte är en bra idé - men det här är kanske bara en inlärningsövning.



  1. Ändra tabell misslyckas eftersom en rad har felaktig data - Felaktigt datum och tid värde:'0000-00-00 00:00:00'

  2. MYSQL:Hitta start- och sluttidsstämpel för en på varandra följande räkning

  3. MySQL beräkna procentandelen av två andra beräknade summor inklusive en grupp per månad

  4. mysql/php:visa inlägg och för varje inlägg alla kommentarer