Tôi không thể giúp chuyển đổi bên Java sang bên C mà cx_Oracle cần nhưng có thể phần sau sẽ giúp hiển thị những gì cx_Oracle cần. Tôi sẽ sử dụng một ví dụ dựa trên Oracle Exadata Express, sử dụng ví để kết nối, hãy xem hướng dẫn chung để kết nối ngôn ngữ kịch bản với Exadata Express tại đây .
Cấu hình và tệp chính xác của bạn có thể khác nhau. Như Anthony đã chỉ ra, thiết lập bảo mật không dành riêng cho cx_Oracle. Các chuyên gia bảo mật hữu ích và có kinh nghiệm hơn có thể ẩn náu trong các diễn đàn khác.
Đối với Exadata Express, một tệp zip ví được cung cấp sẵn sẽ được tải xuống. Đối với các ứng dụng Giao diện cuộc gọi Oracle như cx_Oracle, chúng ta chỉ cần các tệp này từ zip:sqlnet.ora, tnsnames.ora và cwallet.sso. Bạn sẽ cần tạo / tìm các tệp này (hoặc bất cứ thứ gì bạn cần).
Tệp của tôi là:
sqlnet.ora :
WALLET_LOCATION = (SOURCE = (METHOD = file)
(METHOD_DATA = (DIRECTORY="$TNS_ADMIN")))
SSL_SERVER_DN_MATCH=yes
tnsnames.ora :
dbaccess = (description=
(address=(protocol=tcps)(port=1522)(host=whereever.com))
(connect_data=(service_name=whereever2.com))
(security=(ssl_server_cert_dn="CN=wherever2.com,O=Oracle Corporation,L=Redwood Shores,ST=California,C=US"))
)
cwallet.sso :Tôi sẽ để điều này cho trí tưởng tượng của bạn ...
Tôi đặt ba tệp đó trong /Users/cjones/Cloud
và thiết lập môi trường để tìm chúng:
$ export TNS_ADMIN=/Users/cjones/Cloud
Bây giờ tôi có thể kết nối bằng tên kết nối trong tnsnames.ora
tệp:
$ sqlplus -l cj/[email protected]
SQL*Plus: Release 12.2.0.1.0 Production on Fri Jul 6 10:20:21 2018
Copyright (c) 1982, 2017, Oracle. All rights reserved.
Last Successful login time: Tue Jul 03 2018 13:00:06 +10:00
Connected to:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
SQL>
Trong cx_Oracle, dsn
của bạn sẽ là dbaccess
quá.