简体   繁体   中英

cx_Oracle connection issue

I've been aware of this oracle DB, tried several combinations of commands but still unable to connect. below is my latest attempt to connect.

 ip = "173.37.65.217" #datamart port = '1810' SID = 'fntr3prd.cisco.com' #'ARCHIVE_HC6_ARCH'#"fntr3prd" username = 'xx' # I don't have permission to share password = 'xx' # I don't have permission to share dsn_tns = cx_Oracle.makedsn(ip, port, SID) con = cx_Oracle.connect(username,password,dsn_tns) cur = con.cursor() cur.execute("select * from ARCHIVE_HC6_ARCH”) 

The exception I get…

Traceback (most recent call last): File "/Users/tlombard/Desktop/FY16Metrics/ppmArchive.py", line 12, in con = cx_Oracle.connect(username, password, dsn_tns) DatabaseError: ORA-12505: TNS:listener does not currently know of SID given in connect descriptor

NOTE: as you can see below, I am able to connect to this database with sqlplus…

SQL> DESC ARCHIVE_HC6_ARCH Name Null? Type ----------------------------------------- -------- ---------------------------- ARCH_FISCAL_DT NOT NULL DATE HC NUMBER DE_DT_YN VARCHAR2(30) RESOURCE_POSITION VARCHAR2(150) CLIENT_FUNDED
VARCHAR2(200) RESOURCE_NAME VARCHAR2(300) RESOURCE_DEPT_NAME VARCHAR2(150) RESOURCE_DEPT_NO
NUMBER RESOURCE_ID VARCHAR2(50) RESOURCE_MANAGER
VARCHAR2(200) RESOURCE_POOL VARCHAR2(255) RESOURCE_ROLE
VARCHAR2(255) RESOURCE_TITLE VARCHAR2(500) RESOURCE_TYPE VARCHAR2(7) ROLE_CATEGORY VARCHAR2(255) ROLE_GROUP VARCHAR2(255) L0 VARCHAR2(20) L1
VARCHAR2(20) L2 VARCHAR2(20) L3 VARCHAR2(20) L4 VARCHAR2(20) UNNAMED VARCHAR2(30) WORK_COUNTRY VARCHAR2(100) WORK_SITE VARCHAR2(300) MONTH_KEY NUMBER MONTH VARCHAR2(50) QUARTER_KEY NUMBER QUARTER_NAME VARCHAR2(50) YEAR_NAME VARCHAR2(50) BPF VARCHAR2(255) PROJECT_PRIORITY VARCHAR2(100) PROJECT_STATUS
VARCHAR2(200) PRODUCT_FAMILY VARCHAR2(200) PIN_AGGREGATED VARCHAR2(1000) PROJECT_OS VARCHAR2(2000) PLATFORM VARCHAR2(765) PROJECT_CLASS VARCHAR2(100) PROJECT_ID VARCHAR2(300) PROJECT_INITIATIVE
VARCHAR2(150) PROJECT_LEAD VARCHAR2(150) PROJECT_MGR
VARCHAR2(150) PROJECT_CATEGORY VARCHAR2(300) PROJECT_NAME VARCHAR2(1500) PROJECT_HEALTH
VARCHAR2(100) PLANNED_RELEASE VARCHAR2(500) PROJECT_TECH_AREA VARCHAR2(150) PROJECT_TYPE
VARCHAR2(150) WORK_COUNTRY_SORT VARCHAR2(15) PROGRAM_NAME VARCHAR2(500) YEAR_KEY NUMBER ARCH_FISCAL_MONTH VARCHAR2(100) SOLUTION VARCHAR2(500) PROJECT_ROLE_CATEGORY VARCHAR2(255) RESORUCE_DEPT_FUNCTION
VARCHAR2(500) RESOURCE_MANAGER_ID VARCHAR2(255) RESOURCE_ACTIVE VARCHAR2(50) PROJECT_ACTIVE
VARCHAR2(100) PROJECT_ORG VARCHAR2(255) L5
VARCHAR2(20) QUADRANT VARCHAR2(255)

SQL>

Any ideas on what I should try next?

It could be that your using a service name instead of a sid

Try

dsn_tns = cx_Oracle.makedsn(ip, port, service_name=SID)

http://cx-oracle.readthedocs.org/en/latest/module.html?highlight=makedsn#cx_Oracle.makedsn

Assuming you have some other kind of access to the database try

SELECT sys_context('USERENV', 'SID') FROM DUAL;

and use that instead of

SID = 'fntr3prd.cisco.com'

您是否已安装了oracle客户端并已完成LDAP配置?

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM