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文件位置运行文件

时间: 2024-10-14 15:22:32

perl链接oracle数据库学习【一】:循环控制的相关文章

关于vs2008使用oracleclient链接oracle数据库报报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用

用vs2008链接oracle数据库出现问题,报错OCIEnvCreate 失败,返回代码为 -1,但错误消息文本不可用,从网上找了好久方法,有两种oracle客户端文件权限,和运行vs2008以管理员身份,这些都试过了没有用,查了好久还是没有解决问题,只好换一种方式链接oracle数据了. 我使用的是ODAC方式链接oracle数据库,这样就不需要安装oracle客户端了,我的操作步骤如下: 1.从[url=http://download.oracle.com/otn/other/ole-oo

.Net项目中通过ODAC方式链接Oracle数据库相关配置

.Net项目中通过ODAC方式链接Oracle数据库相关配置 一.开发环境 1.关于ODAC的链接方式 ODAC 直接使用 Oracle 调用接口 (OCI). OCI 是一种允许应用程序开发人员使用第三方开发语言存取Oracle数据服务器的过程或函数以及控制所有的SQL语句执行状态的应用程序接口. 2.使用ODAC方式的优点 使用ODAC的Net选项而无需在客户机上安装Oracle客户端来连接到Oracle.在这种情况下,ODAC仅需要TCP/IP协议的支持,从而可以创建真正的.最小的数据库应

Jython中链接Oracle数据库

实际操作环境为:Eclipse+Pydev中使用Jython链接Oracle数据库.方法有二,如下所示.(注意:将要使用的.jar文件路径加入系统变量classpath中) 一: Note:使用ojdbc.jar库 from oracle.jdbc.driver import OracleDriver from java.sql import DriverManager def connect(host , port , sid , user , password): driver = Orac

Java JDBC链接Oracle数据库

package com.test.test; import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql

Oracle数据库学习笔记(一)

Oracle以其跨平台操作系统和硬件平台.稳定性.安全性.性能优越而著称于世.主要包括两个方向: 1).数据库管理员方向,主要学习对Oracle本身进行管理,提升性能,优化数据存储结构: 2).数据库程序员方向,在Oracle基础上对Oracle进行程序开发. PL/SQL是Oracle公司对关系型数据库的标准语言SQL的过程化语言扩展,特征包括:变量定义.控制结构.自定义的子程序.对象类型. PL/SQL程序的最基本的组成单元是PL/SQL块,分为:匿名块.命名块.命名块又可分为子程序.包.触

Oracle数据库学习小结(一)

今天要跟大家来聊一聊俺在使用Oracle数据库的这段时间里面学到的一些知识. 俺最近出来工作了,来到的公司是使用的Oracle数据库,之前一直使用的是SQL的数据库,在性质上二者前者是收费的,后者是开源的:在使用上主要还是靠自己探索,下面说说俺的一些收获.在前段时间俺一直在鼓捣组长分下来的一个任务,定时同步数据的一个小程序,俺的Oracle之旅也是从这里才算是正式开始的. 近期的学习中俺了解到Oracle数据库本身是自带三个默认用户的:sys(网络管理员).system(本地普通管理员).sco

Oracle数据库学习(一)

Oracle数据库由甲骨文公司开发,是基于对象的关系型数据库:下面是简单的学习数据库操作等知识. 1.SQL单表查询(设一个表名为tab) (1)查询所有记录 select * from tab(一般格式:用户名.表名:如果不输入用户名,则默认为当前用户). (2)查询某些字段 select f_z from tab (f_z为查询字段,可以查询多个字段,以','隔开). (3)distinct(返回不同值) select distinct f_z from tab (distinct必须放在前

ABP框架EF6链接Oracle数据库手动迁移

环境:VS2017 + ABP官方模板(不含Zero) +Oracle 11Gx64DB  + Oracle 11Gx32Client(PLSQL工具访问) 一.Abp项目的下载以及运行 1.创建abp项目.进入官网 https://aspnetboilerplate.com/下载项目模板.abp项目有两种架构,一种是单页面(angularjs),另一种是mvc的.点击创建按钮.入下图: 2.对下载的源码首先进行编译,让其自动下载Nuget项目依赖包,保证源码可以编译通过. 3.在WinRun2

Oracle数据库学习笔记

创建表的同时插入数据:create table zhang3 as select * from zhang1;create table zhang3(id,name) as select * from zhang1; 将查询数据插入到某个表中:insert into zhang3 select * from zhang1;insert into zhang3(id,name) select * from zhang1; 有关完整性约束,表名,列名的两个视图:user_constraints, u