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

#!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/[email protected]/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文件位置运行文件

技术分享

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。