Linux jython oracle

简介:
和网上的相比 ,就是 linux使用
http://www.jython.org/Project/download.html
下载 jython 包,(安装!不,就直接解压jar 就可以用了,我 linux 没有窗口!可怜 )
jar   -xvf  jython_install.jar
使用 root 
vim /etc/profile #添加 
export JAVA_HOME =/ usr / local / jdk1. 5 .0_17
export CLASSPATH
= .:$JAVA_HOME / lib:$JAVA_HOME / jre / lib: / home / xj_liukaiyi / src / java / lib / ojdbc14 - 1.0 .jar: / home / xj_liukaiyi / src / jython / evn_lib / jython.jar
export PATH
= $JAVA_HOME / bin:$JAVA_HOME / jre / bin:$PATH
alias jython
= ' java org.python.util.jython  '
测试 oracle
# !jython
from  oracle.jdbc.driver  import  OracleDriver
from  java.sql  import  DriverManager
def  connect(un = ' dbuser ' , pw = ' pass123 ' , sid = ' ora10g ' , host = ' 192.168.102.223 ' , port = ' 1688 ' ):
    driver 
=  OracleDriver()
    DriverManager.registerDriver(driver)
    connection 
=   " jdbc:oracle:thin:@%s:%s:%s "   %  (host, port, sid)
    
return  DriverManager.getConnection(connection, un, pw)


def  doSelect(strSql,func = None,doConn = None):
    is_now_conn
= None
    
if   not  doConn :
        is_now_conn
= True
        doConn
= connect()
    stmt 
=  doConn.createStatement()
    datas
= []
    rows
= 0
    
try :
        
try :
                rset 
=  stmt.executeQuery(strSql)
                ccount
= rset.getMetaData().getColumnCount()
                data
= []
                
while  (rset.next()):
                        rows
= rows + 1
                        
# print rset.getObject(1)
                         for  ii  in  range(ccount):
                                data.append(rset.getObject(ii
+ 1 ))
                
if  func :
                        func(data,rows)
                datas.append(data)
        
except :
                
pass
    
finally :
        
try :
                stmt.close()
        
finally :
                
if  is_now_conn   :
                        doConn.close()
                        
print   " -conn close- "
    
return  datas

def  runRow(data,rows):
        
print   " runRow row=%s data=%s  "   %  (rows,data)

if   __name__   ==   " __main__ " :
    
# 模式1 定义一次 conn close
     # 可插拔式 定义方法使用 runRow (罗嗦下java 要达到只能写接口 !)
    doSelect( ' select count(*) from MN05_TBL_BIZ   ' ,runRow)

    
# 模式2 外部定义 conn 并,可多次使用 后 conn close
    conn = connect()
    
print  doSelect( ' select count(*) from MN05_TBL_COPYRIGHT   ' ,doConn = conn)
    
print  doSelect( ' select count(*) from MN05_TBL_BIZ   ' ,doConn = conn)
    

   from  java.lang  import   *
   print  tts[ 2 ]
   # 梁咏琪   #有换行 这 使用 java.lang.String.trim 
   #
   sql = """
    select tb.NAME 
    from MN05_TBL_BIZ tb , MN05_TBL_COPYRIGHT  tc 
    where 
        tb.copyright_id=tc.COPYRIGHT_ID and 
        tb.actor = '%s'
        
    """   % String(tts[ 2 ]).trim()  )
    
# 中文匹配问题这 使用 decode('utf8') 变成unicod 就可以了
    

    arr=db.doSelect(sql.decode(
'utf8' ),doConn = conn)
    
for t in arr[0]:
       print t. encode('utf-8')

    
conn.close()
jython 结果 
-bash-3.00$ jython  db.py 
runRow row=1 data=[3487033] 
-conn close-
[[1563479]]

[[3487033]]

本文转自博客园刘凯毅的博客,原文链接:Linux jython oracle,如需转载请自行联系原博主。

目录
相关文章
|
3月前
|
负载均衡 Oracle 关系型数据库
Linux启动多个Oracle实例
Linux启动多个Oracle实例
39 0
|
4月前
|
Oracle 关系型数据库 Linux
windows 11 hyper-v中oracle linux虚拟机中添加硬盘
在windows 11自带的hyper-v虚拟机中添加硬盘,并分区
65 6
|
3月前
|
SQL Oracle 关系型数据库
Linux环境下oracle切换用户并查询数据库命令
Linux环境下oracle切换用户并查询数据库命令
|
10月前
|
Oracle 关系型数据库 MySQL
|
10月前
|
Oracle 关系型数据库 Linux
5分钟学会在Linux上安装Oracle和一条命令创建数据库
在Linux上安装Oracle软件的过程相当复杂,让很多初学者望而却步。但在Oracle 18c以后Oracle推出了使用rpm包安装Oracle数据库软件的安装方式
232 0
|
10月前
|
Oracle 关系型数据库 Linux
使用rpm包在Linux上安装Oracle软件和创建数据库
在Linux上安装Oracle软件的过程相当复杂,让很多初学者望而却步。但在Oracle 18c以后Oracle推出了使用rpm包安装Oracle数据库软件的安装方式,安装两个(预安装包和数据库安装包)rpm包即可完成整个Oracle数据库软件的安装。
263 0
使用rpm包在Linux上安装Oracle软件和创建数据库
|
10月前
|
Oracle 关系型数据库 Linux
5分钟学会在Linux上安装Oracle和一条命令创建数据库
在Linux上安装Oracle软件的过程相当复杂,让很多初学者望而却步。但在Oracle 18c以后Oracle推出了使用rpm包安装Oracle数据库软件的安装方式
197 0
|
11月前
|
Oracle 安全 关系型数据库
Linux的daemon进程对Oracle数据库的SGA使用大页内存的处理
Oracle对运行在机器内存超过32G上的数据库推荐使用HugePages 来容纳Oracle数据库的SGA,参见。
140 0
|
11月前
|
Oracle 安全 关系型数据库
为Oracle数据库在linux上配置hugepage内存管理
HugePages是Linux内核2.6以后的版本上的一个内存管理特性,它将原来4K的内存页管理单位改成更大页的管理单位
293 0
|
11月前
|
Oracle 关系型数据库 Linux
【Oracle】安装Oracle Linux操作步骤
【Oracle】安装Oracle Linux操作步骤
327 0