sql游标

pro*c 动态sql

匿名 (未验证) 提交于 2019-12-02 23:43:01
2019独角兽企业重金招聘Python工程师标准>>> 动态SQL 在有些情况下, 在编码时SQL语句还不能完整地写出来, 而是在程序执行时才能构造出来(也就是说动态SQL语句在程序编译时语句的选择列表和确定, 变量数据大于0)。 这种在程序执行临时生成的SQL语句叫动态SQL语句. 利用动态SQL来编写Pro*C程序的方法叫动态SQL技术. 在下列情况之一不知道时, 使用动态SQL技术: a. SQL语句的文本. b. 宿主变量的个数。 c. 宿主变量的数据类型。 Oracle Pro*C 编程入门 d. 引用的数据库对象, 如列, 索引, 序列, 表, 用户名和视图. 实际上, 动态SQL在一般应用中用的相当普遍! Oracle中动态SQL可用以下两种方法实现: 一个是Oracle自己的方法, 一个是ANSI的方法. 一般建议使用Oracle的方法,但对于较复杂的应用, 可以使用ANSI的方法, 因为这样可以使自己的程序简化。 下面先说Oracle自己的方法. 5.1 Oracle方法 一般来说, 应该使用一个字符串变量来表示动态SQL语句的文本。 但该文本不包含“EXEC SQL”和分号“;”以及下列嵌入式SQL命令: ALLOCATE CLOSE DECLARE DESCRIBE EXECUTE FETCH FREE GET INCLUDE OPEN PREPARE SET

oracle PL/SQL的介绍

匿名 (未验证) 提交于 2019-12-02 23:06:17
转自:http://blog.sina.com.cn/s/blog_4c302f060101i4o1.html 一 PL/SQL的介绍 1 PL/SQL是什么? PL/SQL(procedural language/SQL)是Oracle在标准的sql语言上的扩展。pl/sql不仅允许嵌入sql语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这样使得它的功能变的更加强大。 (1)过程,函数,触发器是PL/SQL编写的 (2)过程,函数,触发器是在Oracle中的 (3)PL/SQL是非常强大的数据库过程化语言 (4)过程,函数可以在java程序中调用 2 学习的必要性 (1)提供应用程序的运行性能 传统的操作数据库的方法是:sql语句写到java程序中,java连接Oracle,传递给数据库,Oracle翻译SQL语句,编译成自己能识别的代码,然后才执行。 PL/SQL:直接在Oracle中写过程,由java调用过程,而此过程已经编译成可执行代码。这样节省了时间。 (2)模块化的设计思想[分页的过程,订单的过程,转账的过程。。。] (3)减少网络传输量 传统的方法:数据库和java中的SQL语句不在同一机器上,要经过网络传输 过程:直接调用 (4)提高安全性 过程中封装了用户名、密码、表名、字段名等信息。 3 pl/sql的缺点 4 pl

使用Python对Access读写操作

匿名 (未验证) 提交于 2019-12-02 22:51:30
学习Python的过程中,我们会遇到Access的读写问题 一、可以利用win32.client模块的COM组件访问功能,通过ADODB操作Access的文件。 1、导入模块 import win32com . client 2、建立数据库连接 conn = win32com . client . Dispatch ( r "ADODB.Connection" ) DSN = 'PROVIDER = Microsoft.Jet.OLEDB.4.0;DATA SOURCE = test.mdb' conn . Open ( DSN ) 3、打开一个记录集 rs = win32com . client . Dispatch ( r 'ADODB.Recordset' ) rs_name = 'MEETING_PAPER_INFO' rs . Open ( '[' + rs_name + ']' , conn , 1 , 3 ) 4、对记录集操作 rs . AddNew ( ) #添加一条新记录 rs . Fields . Item ( 0 ) . Value = "data" #新记录的第一个字段设为"data" rs . Update ( ) #更新 5、用SQL语句来增、删、改数据 # 增 sql = "Insert Into " rs_name + " (id,

pymysql指南

匿名 (未验证) 提交于 2019-12-02 22:51:30
1 引言 mysql应该说是如今使用最为普遍的数据库了,没有之一,而Python作为最为流行的语言之一,自然少不了与mysql打交道,pymysql就是使用最多的工具库了。 2 创建库、表 我们先从创建数据库、数据表说起,有了库表,后面的增删改查才有根据。 2.1 创建数据库 pymysql的所有对数据库的操作都必选先与数据库服务建立连接,然后创建游标为基础执行具体的sql语句。创建数据库方法如下: # -*- coding: utf-8 -*- import pymysql conn = pymysql.connect( # 创建数据库连接 host='10.10.11.131', # 要连接的数据库所在主机ip user='chb', # 数据库登录用户名 password='123456!', # 登录用户密码 charset='utf8' # 编码,注意不能写成utf-8 ) cursor = con.cursor() cursor .execute("create database test_db character set utf8;") # 执行完之后别忘了关闭游标和数据库连接 cursor.close() conn.close() 上面代码执行完后,就创建了一个名为test_db的数据库: 2.2 创建数据表 # -*- coding: utf-8 -*-

使用游标建立视图的一个实例(涉及多张表)

给你一囗甜甜゛ 提交于 2019-12-02 16:57:05
declare @x varchar(2000) declare @y varchar(2000) declare @str varchar(max) declare @sql varchar(max) declare @flag int --标记循环次数 set @flag=1 set @str=''--保存建立视图的语句 DECLARE @table_name varchar(2000) DECLARE cursor2 CURSOR FOR --定义游标cursor2 SELECT name FROM (select name from sysobjects where xtype='U' and name not like '%copy%' and name not like '[A-Z]%' and name not like '[a-z]%' ) t -- 共84条记录 OPEN cursor2 --打开游标 FETCH NEXT FROM cursor2 INTO @table_name WHILE @@FETCH_STATUS=0 --判断是否成功获取数据 BEGIN set @sql='select * from syscolumns where id=object_id('''+ @table_name +''') and name=''is_delete '''

Oracle的存储过程基本写法

扶醉桌前 提交于 2019-12-02 05:43:50
转: Oracle的存储过程基本写法 目录 1.1,Oracle存储过程简介:  1.2,创建存储过程的语法: 2.0,游标的使用。看到的一段解释很好的概念,如下: 回到顶部 1.1,Oracle存储过程简介:     存储过程是事先经过编译并存储在数据库中的一段SQL语句的集合,调用存储过程可以简化应用开发人员的很多工作, 减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。 优点: 允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。 允许更快执行,如果某操作需要执行大量SQL语句或重复执行,存储过程比SQL语句执行的要快。 减少网络流量,例如一个需要数百行的SQL代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。 更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。 1.2,创建存储过程的语法: 1 CREATE OR REPLACE PROCEDURE 存储过程名( param1 IN TYPE, param2 OUT TYPE) 2 AS 3 变量 1 类型(值范围);--a_dov varchar(100) 4 变量 2 类型(值范围); 5 BEGIN 6 SELECT count( * ) INTO 变量 1 FROM 表 A WHERE 列名 = param1; -

Oracle数据库学习笔记

青春壹個敷衍的年華 提交于 2019-12-02 02:03:34
一、DDL数据库定义语言 1、表空间 创建表空间: create tablespace bkjname --表空间名称 datafile 'E:\bkjname.dbf' --文件存放的路径 size 100m --大小 autoextend on --自动扩展 next 10m --每次扩展的大小 表空间是一个逻辑单位。 删除表空间: drop tablespace bkjname;    --只删除逻辑关系,本地的表空间文件需要手动删除 2、用户 创建用户: create user yh --用户名 identified by yh --密码 default tablespace bjkname; --表空间 给用户授权: --grant 角色 | 权限 to yh grant connect to yh; --赋予连接登录的权限 grant dba to yh; --最高权限dba grant resource to yh; --通常给开发人员授权resource 3、表 创建表 create table 表名( 列名 列的类型(列的约束), 列名 列的类型(列的约束) ); 列的类型 varchar:在Oracle中目前支持,但不保证以后还支持 varchar2(长度):可变字符长度 char(长度):固定字符长度 number(总长度,小数长度):数字类型

efsdfsd

青春壹個敷衍的年華 提交于 2019-12-01 21:31:30
01 da.SearchCursor 只读查看表或要素类数据。 02 da.InsertCursor 向表或要素类插入行。 03 da.UpdateCursor 编辑或删除表和要素类行。 04 SearchCursor 用于在要素类或表上建立只读游标。 05 InsertCursor 向要素类、shapefile 或表中插入行。 06 UpdateCursor 创建一个用于更新或删除指定要素类、shapefile 和表中的行的游标。 序号 函数名称 功能说明 语法 & 举例 以下是 arcpy.da.SearchCursor、arcpy.da.InsertCursor、arcpy.da.UpdateCursor 01 da.SearchCursor ==== <<<< Description >>>> ==== SearchCursor 用于建立从要素类或表中返回的记录的只读访问权限。 返回一组迭代的元组。元组中值的顺序与 field_names 参数指定的字段顺序相符。使用 For 循环可迭代搜索游标。 ---------------------------------------------------------------------------------- ==== <<<< Syntax >>>> ==== da.SearchCursor (in_table,

PHP PDO预定义常量

纵饮孤独 提交于 2019-12-01 19:02:34
以下常量由本扩展模块定义,因此只有在本扩展的模块被编译到PHP中,或者在运行时被动态加载后才有效。 注意: PDO使用类常量自PHP 5.1。以前的版本使用的全局常量形式PDO_PARAM_BOOL中。 PDO::PARAM_BOOL (integer) 表示布尔数据类型。 PDO::PARAM_NULL (integer) 表示 SQL 中的 NULL 数据类型。 PDO::PARAM_INT (integer) 表示 SQL 中的整型。 PDO::PARAM_STR (integer) 表示 SQL 中的 CHAR、VARCHAR 或其他字符串类型。 PDO::PARAM_LOB (integer) 表示 SQL 中大对象数据类型。 PDO::PARAM_STMT (integer) 表示一个记录集类型。当前尚未被任何驱动支持。 PDO::PARAM_INPUT_OUTPUT (integer) 指定参数为一个存储过程的 INOUT 参数。必须用一个明确的 PDO::PARAM_* 数据类型跟此值进行按位或。 PDO::FETCH_LAZY (integer) 指定获取方式,将结果集中的每一行作为一个对象返回,此对象的变量名对应着列名。PDO::FETCH_LAZY 创建用来访问的对象变量名。在 PDOStatement::fetchAll() 中无效。 PDO::FETCH

sqlite3 数据库创建表

元气小坏坏 提交于 2019-12-01 16:31:10
# coding=utf-8"""1.导入模块sqlite32.创建连接 sqlite3.connect()3.创建游标对象4.编写创建表的sql语句5.执行sql6.关闭连接"""import sqlite3# 创建连接con = sqlite3.connect("E:/sqlite3Demo/demo.db")# 创建游标对象cur = con.cursor()# 创建sql语句sql = '''create table t_person( pno INTEGER primary key autoincrement , pname VARCHAR not null , age INTEGER )'''# 执行sql语句try: cur.execute(sql) print("创建表成功")except Exception as e: print(e) print("创建表失败")finally: # 关闭游标 cur.close() # 关闭连接 con.close()# 这个连接数据库并创建表的方法和传统的JDBC方式较为相似 很容易理解 来源: https://www.cnblogs.com/walxt/p/11693203.html