http://www.jython.org/jythonbook/en/1.0/DatabasesAndJython.html
and also here
http://www.jython.org/archive/21/docs/zxjdbc.html
it seems that WLS 10.3.5 incorporates this library (enter zxJDBC in Everything Search)
java weblogic.WLST from com.ziclix.python.sql import zxJDBC params = {} params['serverName'] = 'localhost' params['databaseName'] = 'xe' params['user'] = 'DEV_SOAINFRA' params['password'] = 'DEV_SOAINFRA' params['port'] = 1521 db = apply(zxJDBC.connectx, ("oracle.jdbc.xa.client.OracleXADataSource",), params)
this fails with "Error: no such method [setPort] using arg type [class java.lang.Integer], value [1521]"
then I try
jdbc_url = "jdbc:oracle:thin:@pierrepc:1521:XE" username = "DEV_SOAINFRA" password = "DEV_SOAINFRA" driver = "oracle.jdbc.xa.client.OracleXADataSource" conn = zxJDBC.connect(jdbc_url, username, password, driver) cursor = conn.cursor(1) cursor.execute("select count(*) from WLI_QS_REPORT_ATTRIBUTE") print cursor.rowcount 0 cursor.fetchone() (4.0,) print cursor.rowcount 1
it seems to work!
cursor.execute("select MSG_LABELS from WLI_QS_REPORT_ATTRIBUTE") for a in cursor.description: print a ('MSG_LABELS', 12, 2048, None, None, None, 1)
try also
print cursor.fetchall() print cursor.fetchmany() cursor.execute("select MSG_GUID from WLI_QS_REPORT_ATTRIBUTE order by MSG_GUID") res = cursor.fetchall() print res for a in res: print a for a in res: print a[0]
To access a specific column without guessing its position:
cursor.execute("select * from SOMETABLE where ID = '29'") columnNames = [] for item in cursor.description: columnNames.append(item[0]) for a in cursor.fetchall(): ID = a[columnNames.index('ID')] DSNAME = a[columnNames.index('DSNAME')] print 'ID=' + ID print 'DSNAME=' + DSNAME
where ID and DSNAME are column names
No comments:
Post a Comment