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

Tại sao tôi không thể kết nối qua jdbc bằng SQLcl

Có vẻ như SID và tên dịch vụ của bạn không giống nhau. Trong SQL Developer, bạn dường như đang sử dụng SID - ít nhất là trong URL JDBC tùy chỉnh mà bạn đã hiển thị - như được biểu thị bằng dấu hai chấm trong :vdbsl4 .

URL SQLcl của bạn đang sử dụng tên dịch vụ, được biểu thị bằng dấu gạch chéo trong /vdbsl14 . Sử dụng SID thay thế (tức là thay đổi / thành :) trong URL đó sẽ hoạt động vì nó sử dụng JDBC:

sqlcl username/[email protected]:1521:vdbsl14

Ngoài ra (và tốt hơn là theo ý kiến ​​của tôi) tìm hiểu tên dịch vụ của bạn thực sự là gì. Nếu bạn có đủ đặc quyền trên cơ sở dữ liệu, bạn có thể thực hiện show parameters service_names từ SQL Devleoper hoặc nếu bạn có quyền truy cập vào máy chủ dưới dạng DBA, bạn có thể thực hiện lsnrctl services hoặc thậm chí xem tnsnames.ora trong trường hợp có bí danh TNS được xác định hiển thị tên dịch vụ. (listener.ora không có khả năng giúp ích, nhưng có thể đưa ra gợi ý hoặc nếu bạn may mắn, hãy hiển thị một tên dịch vụ mặc định).

Bạn có thể sử dụng tên dịch vụ đó trong URL JDBC, dưới dạng /service_name .

Bạn cũng có thể sử dụng bí danh TNS từ SQLcl (hoặc SQL * Plus). Bạn có thể đã có tnsnames.ora có sẵn; nếu không, bạn có thể sao chép nó từ máy chủ của mình hoặc tạo của riêng bạn. Điều đó có thể tham chiếu đến SID hoặc tên dịch vụ.

Bạn thậm chí có thể chuyển một mô tả TNS đầy đủ cho SQL * Plus (không chắc chắn về SQLcl) nhưng điều đó hơi khó chịu. Nếu bạn không có / muốn có tnsnames.ora bạn có thể sử dụng cú pháp 'kết nối dễ dàng', giống như bạn đang sử dụng cho SQLcl - nhưng điều đó là tên dịch vụ, nó không cho phép SID.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Oracle SQL:các biến được sử dụng thay cho tên bảng

  2. Làm thế nào bạn có thể buộc một hàm trong mệnh đề where thực thi một lần trong oracle?

  3. Vấn đề cơ bản:đầu ra bảng điều khiển PL / SQL cơ bản?

  4. Tìm nạp dữ liệu cho ngày 31 tháng 12 của 5 năm trước và ngày hôm nay

  5. Truy vấn cập nhật động trong thủ tục