Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Jak połączyć się z Oracle jako SYS z SQL*Plus w Javie?

Przekazujesz wszystkie informacje o połączeniu jako pojedynczą wartość; odpowiednik tego z wiersza poleceń:

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

które otrzymałyby taką samą odpowiedź, jak drukowanie pomocy logowania SQL*Plus. Masz też swoje hasło w złym miejscu, ale to nie zajdzie tak daleko. Z wiersza poleceń działałoby to:

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

więc musisz przekazać 5 argumentów do ProcessBuilder , coś takiego:

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

Będzie to nadal działać tylko wtedy, gdy twoje środowisko jest skonfigurowane tak, aby zezwalać na zdalne połączenie jako sysdba . Robienie czegokolwiek jako sys powinno być bardzo rzadkie i mieć skrypt, który chcesz uruchomić jako sys wydają się na tyle niezwykłe, że opakowanie Java może wydawać się przesadą - i sprawia wrażenie, że możesz połączyć się jako sys rutynowo, co nie jest dobrym pomysłem - ale może to tylko ćwiczenie edukacyjne.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wyłącz wyzwalacz logowania w Oracle

  2. Ograniczenie Oracle Client Blob 10K z NHibernate i Mono?

  3. Korzyści z nauki nowych systemów DB

  4. ResultSet.getTimestamp(data) vs ResultSet.getTimestamp(data, Calendar.getInstance(tz))

  5. Jak używać parametru dynamicznego w klauzuli IN zapytania o nazwie JPA?