Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Cách kết nối với Oracle dưới dạng SYS từ SQL * Plus trong Java

Bạn đang chuyển tất cả thông tin kết nối dưới dạng một giá trị duy nhất; tương đương với điều này từ một dòng lệnh:

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

sẽ nhận được phản hồi tương tự khi in trợ giúp đăng nhập SQL * Plus. Bạn cũng đã đặt sai mật khẩu của mình nhưng nó không đi xa đến vậy. Từ một dòng lệnh, điều này sẽ hoạt động:

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

vì vậy bạn cần chuyển 5 đối số cho ProcessBuilder , một cái gì đó như:

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

Điều này sẽ vẫn chỉ hoạt động nếu môi trường của bạn được định cấu hình để cho phép kết nối từ xa dưới dạng sysdba . Làm bất cứ điều gì với tư cách sys sẽ rất hiếm và có một tập lệnh bạn muốn chạy dưới dạng sys có vẻ đủ bất thường để trình bao bọc Java có vẻ như quá mức cần thiết - và làm cho nó có vẻ như bạn có thể kết nối dưới dạng sys thường xuyên, đó không phải là một ý tưởng hay - nhưng có thể đây chỉ là một bài tập học tập.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tôi có một câu lệnh chèn vào nhưng có lỗi với dấu phẩy và tôi không thể sửa nó

  2. Làm thế nào để tạo dự án cơ sở dữ liệu Oracle bằng Visual studio 2010?

  3. Chia tỷ lệ của giá trị thập phân dẫn đến việc cắt ngắn dữ liệu qua ODBC

  4. Phân biệt các giá trị CSV sử dụng REGEXP_REPLACE trong tiên tri

  5. Chúng ta có thể có nhiều WITH AS trong một sql không - Oracle SQL