您的位置:首页 > 数据库 > Oracle

python链接oracle数据库学习【一】:循环控制

2015-02-12 16:46 453 查看
#!d:/Python/bin/python
__author__ = 'stone'
#引入oracle支持包
import cx_Oracle
import traceback
from pip.backwardcompat import raw_input
#定义函数
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
def querysal(conn, empnum):
cur=conn.cursor()
#执行语句
cur.prepare('select * from emp where empno = to_number(:id)')
#传递绑定变量到对应的语句
cur.execute(None, {'id': empnum})
#print(cur)
#将所有选定的行放入到res
res = cur.fetchall()
#  print(len(res))
#迭代打印出查询到的内容
for r in res:
print("姓名:"+str(r[1])+" 工号:"+str(r[0])+" 薪水:"+str(r[5])+" 月奖金:"+str(r[6])+"")
if(len(res)==0):
cur.close()
return False
cur.close()
return True
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
conn=cx_Oracle.connect('scott/tiger@172.15.36.225/orcl')
while(1):
empnum=raw_input("请数据你的工号【0:退出】:").strip("\n")
if(empnum.isdigit()):#如果输入值为数字,则执行程序
if(empnum is not "0"):#如果输入值不为0,则执行程序
if(querysal(conn,empnum)):#执行查询程序
continue#执行成功继续循环
else:
print("工号不存在")#执行失败时提示工号不存在
else:#输入结果为0,退出程序
break  #跳出循环,并结束脚本
else:#如果输入不为数字,则提示输入数字,并继续循环
print("请输入四位数工号")
continue
print("脚本结束")
conn.close()
循环和控制部分,主要是涉及到if elif else 和while的使用。比较上一个程序,添加了,更多的控制,防止出现异常。因为empno字段是number型,添加控制主要是为了防止输入字符型,导致程序失败。
还有就是在python中,不再使用(),[],{}来划分语句的级别,而使用tab(或四个空格)来控制程序的结构。
执行示例
逻辑
输入员工的员工号,查询对应的工资和奖金的信息。员工号为四位数的数字字符串。
方式一,调用系统默认的python



方式二,使用python文件都指定的python文件位置运行文件


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息