python-bridge 地址
使用python运行oracle语句
npm install python-bridge
let pythonBridge = require('python-bridge');
let selectSql = (sql) => {
return new Promise((resolve, reject) => {
log.writeDebug(`${this.classname} DB ${sql}`);
let python = pythonBridge();
python.ex`import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import cx_Oracle as oracle
def selectSql():
try:
conn = oracle.connect('用户名','密码','ip:1521/实例名')
curs = conn.cursor()
curs.execute(${sql})
conn.commit()
row=curs.fetchall()
curs.close()
return row
except oracle.DatabaseError as e:
return e.message`;
python`selectSql()`.then((result) => {
resolve(result);
}).catch(python.Exception, (e) => {
console.log(e.message);
reject(e);
}).finally(() => {
python.end();
});
})
};
let executeSql = (sql) => {
return new Promise((resolve, reject) => {
log.writeDebug(`${this.classname} DB ${sql}`);
let python = pythonBridge();
python.ex`import sys
reload(sys)
sys.setdefaultencoding('utf-8')
import cx_Oracle as oracle
def executeSql():
try:
conn = oracle.connect('用户名','密码','ip:1521/实例名')
curs = conn.cursor()
sql=${sql}
sql=sql.decode('utf-8').encode('gbk')
curs.execute(sql)
curs.close()
conn.commit()
conn.close()
except Exception as e:
conn.rollback()
return "Exception:"+e.message`;
python`executeSql()`.then((result) => {
resolve(true);
}).catch(python.Exception, (e) => {
console.log(e.message);
reject(e);
}).finally(() => {
python.end();
});
})
};