使用python-cx将数据导入到oracle_

2024-09-29 04:23:20 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我不熟悉python(编程和stackoverflow)。首先让我先说一点我正在做什么和想做什么。在

我正在使用一个内部xmlapi从内部数据库中提取数据

自动将结果解析为xml格式(txt/a 设置间隔)

我想将此文档的内容写入或导入oracle数据库

如何将此文档导入或写入现有的oracle数据库?我似乎找不到与数据库建立连接的cx_Oracle模块的文档。你们这些人能给我指点方向吗?在


Tags: 模块数据文档txt数据库内容间隔格式
2条回答

简短回答:

query = """
insert into TABLE(FIELD1, FIELD2, ...) values (VAL1, VAL2, ...)
"""
cur = con.cursor()
cur.execute(query)
cur.commit()

我强烈建议您使用prepared statements。在

长话短说:

这是针对Linux的,特别是针对Red Hat。只有末尾的Python代码可以在每个操作系统上使用。尝试使这些步骤适应您的操作系统。在

0:安装包libaiopython-dev(或python-devel,检查发行版)

1:如果没有pip,请安装它

2:从Oracle site安装oracle instantclient-basic和{}(或instantclient-devel

3:使用bash启动这些命令。如果您没有/etc/profile.d/,请检查您的发行版。在

^{pr2}$

4:注销并重新登录

5:在使用cx Oracle之前,您必须设置LD_LIBRARY_PATH我建议您而不是全局设置它:

export LD_LIBRARY_PATH="$ORACLE_HOME/lib"

6:最后,Python代码:

import cx_Oracle

os.environ["NLS_LANG"] = "AMERICAN_AMERICA.UTF8"
con_str = "USERNAME/PASSWORD@HOST:PORT/DBNAME"
con = cx_Oracle.connect(con_str)

query = """
select 1 from dual
"""
cur = con.cursor()
cur.execute(query)
rows = cur.fetchall()

for row in rows:
    print(row) # it should print "1"

con.close()

您必须用您的用户名、密码等更改con_str。设置{}编码的行是可选的,可以根据您的需要进行调整,但建议这样做。在

7:如果要插入行:

query = """
insert into TABLE(FIELD1, FIELD2, ...) values (VAL1, VAL2, ...)
"""
cur = con.cursor()
cur.execute(query)
cur.commit()

如果您不能信任数据的来源,我强烈建议您使用prepared statements。在

资料来源:

  1. http://chilipuppy.blogspot.it/2008/10/purpose-im-working-on-building-python.html
  2. http://agiletesting.blogspot.it/2005/05/installing-and-using-cxoracle-on-unix.html
  3. http://cx-oracle.readthedocs.org/en/latest/index.html
  4. 私人纠纷

你的问题基本上是“如何开始使用cx Oracle?”在

这里有一些片段:

http://markharrison.net/cx-oracle-demos

您最简单的cx®Oracle程序如下所示:

import cx_Oracle
conn = cx_Oracle.connect('scott/tiger')
curs = conn.cursor()

curs.execute('select 2+2 from dual')
print curs.fetchall()

curs.execute('insert into mytable(x) values(3)')
conn.commit()

curs.execute('select * from mytable')
for row in curs:
    print row

conn.close()

相关问题 更多 >