什么是Python 解释器及其使用?
创始人
2024-06-22 08:41:31
0

要访问数据库,Python 解释器需要安装数据库模块。您有许多选择,这些选择均遵守标准化的 API 规范,并且曾经以编程方式使用过 ODBC 或 JDBC 的任何人均非常熟悉它们。

您将使用 cx_Oracle,因为它比较易于安装。只需下载一个与您的 Python 和 Oracle 数据库版本匹配的 Windows 安装程序。 安装 cx_Oracle 后,返回 Python 命令行解释器进行试用。由于 cx_Oracle 是一个独立于核心Python 解释器语言的模块,因此在将其用于任何会话或脚本之前必须导入它。

  1. >>> orcl = cx_Oracle.connect('scott/tiger@orcl')>>> 
  2. curs = orcl.cursor()>>> sql = """CREATE TABLE INIT_PARAMS ... 
  3. ( fileName VARCHAR2(30),...   param VARCHAR2(64),...  
  4.  value VARCHAR2(512) )""" 

请记住要使用大写字母!下面,我们将创建一个用于存储结果的表。

  1. import readInitOra, cx_OracleinitParams = {}        
  2. for fileName in ['init_orcl.ora', 'init_default.ora']:
  3. initParams[fileName] = readInitOra.read(fileName)orcl = cx_Oracle.
  4. connect('scott/tiger@orcl')curs = orcl.cursor()for fileName in initParams.keys():  
  5.  for param in initParams[fileName].keys():value = initParams[fileName][param]sql = """INSERT INTO INIT_PARAMS VALUES
  6.  (:fileName, :param, :value)"""bindVars = {'fileName':fileName, 
  7. 'param':param, 'value':value}curs.execute(sql, bindVars)curs.close() 
  8. orcl.commit()     


以上就是全部代码了。注意,您这次在 SQL 字符串中使用了绑定变量,并在一个单独字典中为它们提供了值。使用绑定变量可以帮助您摆脱 SPCSP(防止错误使用共享池协会)的麻烦。 从查询中获取结果略微复杂一些。对游标对象调用 execute() 后。

可以使用 fetchone() 一次获取一行,也可以使用 fetchall() 获取所有行的列表。无论在哪种情况下,每一行均采用字节组(即可以由数值索引访问的有序值序列)的形式。例如,我们将编写 compareInitOra.py 来打印与 V$PARAMETER 中的当前值冲突的 init_orcl.ora 参数:

该脚本引入了一些您还没见过Python 解释器技巧:

◆对字典 fileParams 调用 items() 将返回一个(键, 值)对列表。可以通过在 for 语句中指定两个循环变量来遍历这些键值。

◆调用 liveParams.get(param) 的工作方式类似于 liveParams[param],区别在于如果在 liveParams 中未找到参数,则将返回一个错误 - 非常类似于“ORA-01403:no data found in PL/SQL”消息。而 liveParams.get(param) 将在 liveParams 中不存在参数的情况下返回 None。

Python 解释器 可以使用 % 运算符执行字符串替换。与 C 的 printf 相似,%s 表示将在该点插入一个字符串形式的值。这些值按顺序从 % 之后的字节组中提取。

◆最后一行代码比您在没有换行符的情况下进行键入运行时间更长,因此您使用了一个反斜线,从而打破了Python 解释器将换行符解释为命令结尾这一通常的规则。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...