社区
基础和管理
帖子详情
oracle里能不能有sql server2000里的自动增长流水号的字段
hf1107
2003-08-22 09:17:12
还有,oracle支持不支持布尔型变量,
和sqlserver2000数据类型有哪些不同,
...全文
40
3
打赏
收藏
oracle里能不能有sql server2000里的自动增长流水号的字段
还有,oracle支持不支持布尔型变量, 和sqlserver2000数据类型有哪些不同,
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
hf1107
2003-08-22
打赏
举报
回复
不好意思,我想问支持不支持布尔型的数据类型。
还有那些其它数据类型
LGQDUCKY
2003-08-22
打赏
举报
回复
ORACLE肯定支持布尔型变量,ORACLE的变量如下
自动增长流水号ORACLE没有,但是有序号,你可以用它来代替流水号
字段类型 中文说明 限制条件 其它说明
CHAR 固定长度字符串 最大长度2000 bytes
VARCHAR2 可变长度的字符串 最大长度4000 bytes 可做索引的最大长度749
NCHAR 根据字符集而定的固定长度字符串 最大长度2000 bytes
NVARCHAR2 根据字符集而定的可变长度字符串 最大长度4000 bytes
DATE 日期(日-月-年) DD-MM-YY(HH-MI-SS) 经过严格测试,无千虫问题
LONG 超长字符串 最大长度2G(231-1) 足够存储大部头著作
RAW 固定长度的二进制数据 最大长度2000 bytes 可存放多媒体图象声音等
LONG RAW 可变长度的二进制数据 最大长度2G 同上
BLOB 二进制数据 最大长度4G
CLOB 字符数据 最大长度4G
NCLOB 根据字符集而定的字符数据 最大长度4G
BFILE 存放在数据库外的二进制数据 最大长度4G
ROWID 数据表中记录的唯一行号 10 bytes ********.****.****格式,*为0或1
NROWID 二进制数据表中记录的唯一行号 最大长度4000 bytes
NUMBER(P,S) 数字类型 P为整数位,S为小数位
DECIMAL(P,S) 数字类型 P为整数位,S为小数位
INTEGER 整数类型 小的整数
FLOAT 浮点数类型 NUMBER(38),双精度
REAL 实数类型 NUMBER(63),精度更高
zjhclf
2003-08-22
打赏
举报
回复
流水号oracle用sequence实现。
支持布尔
Sql
server
2000
经典脚本
介绍就不多说了,下边是部分目录,觉得有用的话就顶一个C:.│
sql
server
2000
.txt│ ├─第01章│ 1.9.1 设置内存选项.
sql
│ 1.9.2(2) 使用文件及文件组.
sql
│ 1.9.2(3) 调整tempdb数据库的文件属性.
sql
│ ├─第02章│ │ 2.1 日期概念理解中的一些测试.
sql
│ │ 2.2.4 CONVERT在日期转换中的使用示例.
sql
│ │ 2.3.3 SET DATEFORMAT对日期处理的影响.
sql
│ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.
sql
│ │ 2.4.1 日期格式化处理.
sql
│ │ 2.4.2 日期推算处理.
sql
│ │ 2.4.3 特殊日期加减函数.
sql
│ │ 2.5.1 查询指定日期段内过生日的人员.
sql
│ │ 2.5.2 生成日期列表的函数.
sql
│ │ 2.5.3 工作日处理函数(标准节假日).
sql
│ │ 2.5.3 工作日处理函数(自定义节假日).
sql
│ │ 2.5.4 计算工作时间的函数.
sql
│ │ │ └─其他│ 交叉表.
sql
│ 任意两个时间之间的星期几的次数-横.
sql
│ 任意两个时间之间的星期几的次数-纵.
sql
│ 复杂年月处理.
sql
│ 统计--交叉表+日期+优先.
sql
│ ├─第03章│ │ 3.2 各种字符串分拆处理函数.
sql
│ │ 3.3 各种字符串合并处理示例.
sql
│ │ 3.4.1 分段截取函数.
sql
│ │ 3.4.2 分段更新函数.
sql
│ │ 3.4.3 IP地址处理函数.
sql
│ │ 3.5.1 字符串比较函数.
sql
│ │ 3.5.2 字符串并集&交集处理示例.
sql
│ │ 3.5.3 字符串分拆并统计的处理示例.
sql
│ │ 3.5.5 字符串处理示例--列车车次查询.
sql
│ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.
sql
│ │ 3.6.3 动态参数的存储过程示例.
sql
│ │ 3.6.4 动态他Transact-
SQL
语句处理中的常见问题演示.
sql
│ │ 3.7.3 text与ntext
字段
的复制和合并处理示例.
sql
│ │ 3.7.4 text与image
字段
转换处理示例.
sql
│ │ 3.7.5 ntext
字段
的REPLACE处理示例.
sql
│ │ │ └─其他│ varbinary转换成字符串.
sql
│ 关键字搜索.
sql
│ 分解公式.
sql
│ 字符串分拆--格式化.
sql
│ 得到一个字符串在另一个字符串中出现的次数.
sql
│ 数字转换成十六进制.
sql
│ 比较第一与第二个字符串,是否有连续的5个字符相同.
sql
│ 生成查询的模糊匹配字符串.
sql
│ 简繁转换.
sql
│ 统计一个表中某个字符出现最多的字母.
sql
│ 非法字符串处理.
sql
│ ├─第04章│ │ 4.1.5 在各种处理中应用排序规则的示例.
sql
│ │ 4.2.1 排序规则在拼音处理中的应用.
sql
│ │ 4.2.2 排序规则在全角与半角处理中的应用.
sql
│ │ │ └─其他│ 生成GB2312汉字表.
sql
│ 生成GBK汉字表.
sql
│
自动
获取汉字笔画.
sql
│ ├─第05章│ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.
sql
│ │ 5.1.1 修改标识值的示例.
sql
│ │ 5.1.1 标识列与普通列互相转换的示例.
sql
│ │ 5.2.1 查表法按日期生成
流水号
的示例.
sql
│ │ 5.2.1 查表法生成
流水号
的示例.
sql
│ │ 5.2.2 使用编号表按日期生成
流水号
的示例.
sql
│ │ 5.2.2 使用编号表生成
流水号
的示例.
sql
│ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).
sql
│ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).
sql
│ │ 5.2.3 生成纯数字随机编号的示例.
sql
│ │ 5.3.2 融合了补号处理的编号生成处理示例.
sql
│ │ 5.3.3 使用UPDATE进行编号重排的处理示例.
sql
│ │ 5.3.3 使用临时表进行编号重排的处理示例.
sql
│ │ 5.3.3 使用子查询进行编号重排的处理示例.
sql
│ │ 5.3.3 名次查询的处理示例.
sql
│ │ 5.4.1 查询已用编号分布情况的示例(临时表法).
sql
│ │ 5.4.1 查询已用编号分布情况的示例(子查询法).
sql
│ │ 5.4.2 查询缺号分布情况的示例.
sql
│ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.
sql
│ │ 5.4.4 缺勤天数统计的处理示例.
sql
│ │ │ └─其他│ -补位法.
sql
│ 以另一个表的
字段
做默认值.
sql
│ 以另一表的
字段
生成编号.
sql
│ 关联部门
流水号
.
sql
│ 十六进制.
sql
│ 学号.
sql
│ 开票统计--涉及到连号处理.
sql
│ 新编号查询示例(分类查询).
sql
│ 新编号查询示例.
sql
│ 日期
流水号
.
sql
│ 材料
流水号
.
sql
│
流水号
.
sql
│ 箱编号连号处理.
sql
│ 类别
自动
生成编号示例.
sql
│ 自已做标识列的例子.
sql
│ 触发器
自动
维护已用&未用编号.
sql
│ 连续编号.
sql
│ 防止重复的示例.
sql
│ 项目编号=各项目独立
流水号
&各年不同.
sql
│ ├─第06章│ │ 6.1.1 NULL对IN的查询的影响及解决示例.
sql
│ │ 6.1.2 各种联接的使用示例.
sql
│ │ 6.1.2 多表联结导致记录重复的示例.
sql
│ │ 6.1.3 使用UNION实现库存报表的示例.
sql
│ │ 6.1.5 按指定上下限区间进行数据统计的示例.
sql
│ │ 6.1.6 随机出题的示例.
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例.
sql
│ │ 6.2.1 UNION ALL实现的分级汇总示例.
sql
│ │ 6.3.1 简单的交叉报表处理示例.
sql
│ │ 6.3.2 多列转换为行的交叉报表处理示例.
sql
│ │ 6.3.3 行值动态变化的交叉报表处理示例(转换多列).
sql
│ │ 6.3.3 行值动态变化的交叉报表处理示例.
sql
│ │ 6.3.4 化解字符串
不能
超过8000的方法.
sql
│ │ 6.3.5 特殊的交叉报表处理示例.
sql
│ │ 6.4.1 库存明细帐处理示例(包含结存数).
sql
│ │ 6.4.1 库存明细帐处理示例.
sql
│ │ 6.4.2 同期及上期数据对比处理示例.
sql
│ │ 6.4.3 动态分组处理示例.
sql
│ │ 6.4.4 排行榜处理示例.
sql
│ │ │ └─其他│ 交叉表--复杂名次.
sql
│ 交叉表-优先级处理.
sql
│ 交叉表分析.
sql
│ 分级汇总.
sql
│ 分组交叉表.
sql
│ 列转行.
sql
│ 固定行列报表.
sql
│ 复杂交叉表.
sql
│ 复杂交叉表1.
sql
│ 多栏显示.
sql
│ 日期+星期+时间.
sql
│ 格式化报表.
sql
│ 横转竖-1.
sql
│ 横转竖-
字段
名.
sql
│ 横转竖-生成
字段
名.
sql
│ 横转竖.
sql
│ 行列互换的复杂交叉表.
sql
│ 限制列数的交叉表.
sql
│ ├─第07章│ │ 7.1 splitpage.asp│ │ 7.2.1 TOP n 实现的通用分页存储过程.
sql
│ │ 7.2.2 字符串缓存实现的通用分页存储过程.
sql
│ │ 7.2.3 临时表缓存实现的通用分页存储过程.
sql
│ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.
sql
│ │ 7.3.1 实现随机分页的通用分页存储过程.
sql
│ │ 7.3.2 根据分类表实现的分页存储过程.
sql
│ │ │ └─其他│ sp_cursor.
sql
│ 基本方法.
sql
│ ├─第08章│ │ 8.1.2 树形数据分级汇总示例.
sql
│ │ 8.1.3 树形数据编号重排的通用存储过程.
sql
│ │ 8.1.3 树形数据编号重排示例.
sql
│ │ 8.1.4 实现编码规则调整处理的通用存储过程.
sql
│ │ 8.1.4 生成编码规则调整处理T-
SQL
语句的函数.
sql
│ │ 8.1.5 删除节点处理的通用存储过程.
sql
│ │ 8.1.5 移动节点处理的通用存储过程.
sql
│ │ 8.2.2 树形数据层次显示处理示例.
sql
│ │ 8.2.2 树形数据广度排序处理示例.
sql
│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).
sql
│ │ 8.2.2 树形数据深度排序处理示例(递归法).
sql
│ │ 8.2.3 查找指定节点的所有子节点的示例函数.
sql
│ │ 8.2.4 查找指定节点的所有父节点的示例函数.
sql
│ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.
sql
│ │ 8.2.5 校验表中数据是否有循环编码的通用存储过程.
sql
│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).
sql
│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.
sql
│ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.
sql
│ │ 8.2.8 逐级汇总示例(循环逐级累计法).
sql
│ │ 8.2.8 逐级汇总示例(用户定义函数法).
sql
│ │ 8.3.1 产品配件清单查询示例.
sql
│ │ 8.3.2 最短乘车路线查询示例.
sql
│ │ │ └─其他│ xml菜单.
sql
│ 宝塔形数据的处理-1.
sql
│ 宝塔形数据的处理.
sql
│ 树形数据生成xml.
sql
│ ├─第09章│ │ 9.1.3 访问外部数据源方法总结.
sql
│ │ 9.5.1 二进制文件存取示例(T-
SQL
).
sql
│ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs│ │ a.txt│ │ Schema.ini│ │ │ └─其他│ bcp-数据导入导出(全).
sql
│ bcp-数据导入导出-二进制文件.
sql
│ bcp-数据导出为文件.
sql
│ bcp表数据存为XML.
sql
│
SQL
Server
到
Oracle
连接服务器的实现.
sql
│
SQL
Server
到
SQL
BASE连接服务器的实现.
sql
│
SQL
Server
到SYBASE连接服务器的实现.
sql
│
sql
导出my
sql
.
sql
│ textcopy实现文件存取.
sql
│ Vb程序实现文件存取.
sql
│ 导入文本文件时如何指定
字段
类型.
sql
│ 导出northwind中Employees的图像.
sql
│ 将某个目录上的Excel表,导入到数据库中.
sql
│ 数据导入导出基本方法.
sql
│ 用ASP上传&下载文件.
sql
Oracle
经典
SQL
语句
ORACLE
经典语句汇总 -- 字符串左填充和右填充,默认填充空格 -- 产生1~99行数据,少于一位则补0 -- 刪除相同行 -- 随机数 -- 产生业务
流水号
-- 查询某张表中有哪些
字段
-- 自循环表中 由叶子节点查父节点 -- 查子节点 复制一张表的数据到另外一张表中 PL
SQL
中存储过程及游标的基本使用
Oracle
中恢复某张表丢失数据的方法 -- 把SELECT出来的结果导到一个文本文件中 -- 查询新建用户 -- 查询那些用户,操纵了那些表造成了锁机 --看锁阻塞的方法 --
ORACLE
获得系统信息
经典
SQL
脚本大全
卷序列号码为 00000030 4489:1826 C:. │
sql
server
2000
.txt │ ├─第01章 │ 1.9.1 设置内存选项.
sql
│ 1.9.2(2) 使用文件及文件组.
sql
│ 1.9.2(3) 调整tempdb数据库的文件属性.
sql
│ ├─第02章 │ │ 2.1 日期概念理解中的一些测试.
sql
│ │ 2.2.4 CONVERT在日期转换中的使用示例.
sql
│ │ 2.3.3 SET DATEFORMAT对日期处理的影响.
sql
│ │ 2.3.4 SET LANGUAGE对日期处理的影响示例.
sql
│ │ 2.4.1 日期格式化处理.
sql
│ │ 2.4.2 日期推算处理.
sql
│ │ 2.4.3 特殊日期加减函数.
sql
│ │ 2.5.1 查询指定日期段内过生日的人员.
sql
│ │ 2.5.2 生成日期列表的函数.
sql
│ │ 2.5.3 工作日处理函数(标准节假日).
sql
│ │ 2.5.3 工作日处理函数(自定义节假日).
sql
│ │ 2.5.4 计算工作时间的函数.
sql
│ │ │ └─其他 │ 交叉表.
sql
│ 任意两个时间之间的星期几的次数-横.
sql
│ 任意两个时间之间的星期几的次数-纵.
sql
│ 复杂年月处理.
sql
│ 统计--交叉表+日期+优先.
sql
│ ├─第03章 │ │ 3.2 各种字符串分拆处理函数.
sql
│ │ 3.3 各种字符串合并处理示例.
sql
│ │ 3.4.1 分段截取函数.
sql
│ │ 3.4.2 分段更新函数.
sql
│ │ 3.4.3 IP地址处理函数.
sql
│ │ 3.5.1 字符串比较函数.
sql
│ │ 3.5.2 字符串并集&交集处理示例.
sql
│ │ 3.5.3 字符串分拆并统计的处理示例.
sql
│ │ 3.5.5 字符串处理示例--列车车次查询.
sql
│ │ 3.6.2 字符串在编号查询中的应用示例及常见问题.
sql
│ │ 3.6.3 动态参数的存储过程示例.
sql
│ │ 3.6.4 动态他Transact-
SQL
语句处理中的常见问题演示.
sql
│ │ 3.7.3 text与ntext
字段
的复制和合并处理示例.
sql
│ │ 3.7.4 text与image
字段
转换处理示例.
sql
│ │ 3.7.5 ntext
字段
的REPLACE处理示例.
sql
│ │ │ └─其他 │ varbinary转换成字符串.
sql
│ 关键字搜索.
sql
│ 分解公式.
sql
│ 字符串分拆--格式化.
sql
│ 得到一个字符串在另一个字符串中出现的次数.
sql
│ 数字转换成十六进制.
sql
│ 比较第一与第二个字符串,是否有连续的5个字符相同.
sql
│ 生成查询的模糊匹配字符串.
sql
│ 简繁转换.
sql
│ 统计一个表中某个字符出现最多的字母.
sql
│ 非法字符串处理.
sql
│ ├─第04章 │ │ 4.1.5 在各种处理中应用排序规则的示例.
sql
│ │ 4.2.1 排序规则在拼音处理中的应用.
sql
│ │ 4.2.2 排序规则在全角与半角处理中的应用.
sql
│ │ │ └─其他 │ 生成GB2312汉字表.
sql
│ 生成GBK汉字表.
sql
│
自动
获取汉字笔画.
sql
│ ├─第05章 │ │ 5.1.1 SET IDENTITY_INSERT 中的几个问题.
sql
│ │ 5.1.1 修改标识值的示例.
sql
│ │ 5.1.1 标识列与普通列互相转换的示例.
sql
│ │ 5.2.1 查表法按日期生成
流水号
的示例.
sql
│ │ 5.2.1 查表法生成
流水号
的示例.
sql
│ │ 5.2.2 使用编号表按日期生成
流水号
的示例.
sql
│ │ 5.2.2 使用编号表生成
流水号
的示例.
sql
│ │ 5.2.3 生成纯字母随机编号的示例(仅大小或者小写).
sql
│ │ 5.2.3 生成纯字母随机编号的示例(大小写混合).
sql
│ │ 5.2.3 生成纯数字随机编号的示例.
sql
│ │ 5.3.2 融合了补号处理的编号生成处理示例.
sql
│ │ 5.3.3 使用UPDATE进行编号重排的处理示例.
sql
│ │ 5.3.3 使用临时表进行编号重排的处理示例.
sql
│ │ 5.3.3 使用子查询进行编号重排的处理示例.
sql
│ │ 5.3.3 名次查询的处理示例.
sql
│ │ 5.4.1 查询已用编号分布情况的示例(临时表法).
sql
│ │ 5.4.1 查询已用编号分布情况的示例(子查询法).
sql
│ │ 5.4.2 查询缺号分布情况的示例.
sql
│ │ 5.4.3 返回已用编号、缺号分布字符串的处理示例.
sql
│ │ 5.4.4 缺勤天数统计的处理示例.
sql
│ │ │ └─其他 │ -补位法.
sql
│ 以另一个表的
字段
做默认值.
sql
│ 以另一表的
字段
生成编号.
sql
│ 关联部门
流水号
.
sql
│ 十六进制.
sql
│ 学号.
sql
│ 开票统计--涉及到连号处理.
sql
│ 新编号查询示例(分类查询).
sql
│ 新编号查询示例.
sql
│ 日期
流水号
.
sql
│ 材料
流水号
.
sql
│
流水号
.
sql
│ 箱编号连号处理.
sql
│ 类别
自动
生成编号示例.
sql
│ 自已做标识列的例子.
sql
│ 触发器
自动
维护已用&未用编号.
sql
│ 连续编号.
sql
│ 防止重复的示例.
sql
│ 项目编号=各项目独立
流水号
&各年不同.
sql
│ ├─第06章 │ │ 6.1.1 NULL对IN的查询的影响及解决示例.
sql
│ │ 6.1.2 各种联接的使用示例.
sql
│ │ 6.1.2 多表联结导致记录重复的示例.
sql
│ │ 6.1.3 使用UNION实现库存报表的示例.
sql
│ │ 6.1.5 按指定上下限区间进行数据统计的示例.
sql
│ │ 6.1.6 随机出题的示例.
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(定义各汇总列标题).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序及汇总列标题处理).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例(带排序处理).
sql
│ │ 6.2.1 ROLLUP实现的分级汇总示例.
sql
│ │ 6.2.1 UNION ALL实现的分级汇总示例.
sql
│ │ 6.3.1 简单的交叉报表处理示例.
sql
│ │ 6.3.2 多列转换为行的交叉报表处理示例.
sql
│ │ 6.3.3 行值动态变化的交叉报表处理示例(转换多列).
sql
│ │ 6.3.3 行值动态变化的交叉报表处理示例.
sql
│ │ 6.3.4 化解字符串
不能
超过8000的方法.
sql
│ │ 6.3.5 特殊的交叉报表处理示例.
sql
│ │ 6.4.1 库存明细帐处理示例(包含结存数).
sql
│ │ 6.4.1 库存明细帐处理示例.
sql
│ │ 6.4.2 同期及上期数据对比处理示例.
sql
│ │ 6.4.3 动态分组处理示例.
sql
│ │ 6.4.4 排行榜处理示例.
sql
│ │ │ └─其他 │ 交叉表--复杂名次.
sql
│ 交叉表-优先级处理.
sql
│ 交叉表分析.
sql
│ 分级汇总.
sql
│ 分组交叉表.
sql
│ 列转行.
sql
│ 固定行列报表.
sql
│ 复杂交叉表.
sql
│ 复杂交叉表1.
sql
│ 多栏显示.
sql
│ 日期+星期+时间.
sql
│ 格式化报表.
sql
│ 横转竖-1.
sql
│ 横转竖-
字段
名.
sql
│ 横转竖-生成
字段
名.
sql
│ 横转竖.
sql
│ 行列互换的复杂交叉表.
sql
│ 限制列数的交叉表.
sql
│ ├─第07章 │ │ 7.1 splitpage.asp │ │ 7.2.1 TOP n 实现的通用分页存储过程.
sql
│ │ 7.2.2 字符串缓存实现的通用分页存储过程.
sql
│ │ 7.2.3 临时表缓存实现的通用分页存储过程.
sql
│ │ 7.2.4 使用系统存储过程实现的通用分页存储过程.
sql
│ │ 7.3.1 实现随机分页的通用分页存储过程.
sql
│ │ 7.3.2 根据分类表实现的分页存储过程.
sql
│ │ │ └─其他 │ sp_cursor.
sql
│ 基本方法.
sql
│ ├─第08章 │ │ 8.1.2 树形数据分级汇总示例.
sql
│ │ 8.1.3 树形数据编号重排的通用存储过程.
sql
│ │ 8.1.3 树形数据编号重排示例.
sql
│ │ 8.1.4 实现编码规则调整处理的通用存储过程.
sql
│ │ 8.1.4 生成编码规则调整处理T-
SQL
语句的函数.
sql
│ │ 8.1.5 删除节点处理的通用存储过程.
sql
│ │ 8.1.5 移动节点处理的通用存储过程.
sql
│ │ 8.2.2 树形数据层次显示处理示例.
sql
│ │ 8.2.2 树形数据广度排序处理示例.
sql
│ │ 8.2.2 树形数据深度排序处理示例(模拟单编号法).
sql
│ │ 8.2.2 树形数据深度排序处理示例(递归法).
sql
│ │ 8.2.3 查找指定节点的所有子节点的示例函数.
sql
│ │ 8.2.4 查找指定节点的所有父节点的示例函数.
sql
│ │ 8.2.5 校验插入指定结点是否导致编码循环的示例函数.
sql
│ │ 8.2.5 校验表中数据是否有循环编码的通用存储过程.
sql
│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例(借鉴方式排序法).
sql
│ │ 8.2.6 复制指定节点及其所有子节点到指定结点的处理示例.
sql
│ │ 8.2.7 实现删除指定结点及所有子节点的处理触发器.
sql
│ │ 8.2.8 逐级汇总示例(循环逐级累计法).
sql
│ │ 8.2.8 逐级汇总示例(用户定义函数法).
sql
│ │ 8.3.1 产品配件清单查询示例.
sql
│ │ 8.3.2 最短乘车路线查询示例.
sql
│ │ │ └─其他 │ xml菜单.
sql
│ 宝塔形数据的处理-1.
sql
│ 宝塔形数据的处理.
sql
│ 树形数据生成xml.
sql
│ ├─第09章 │ │ 9.1.3 访问外部数据源方法总结.
sql
│ │ 9.5.1 二进制文件存取示例(T-
SQL
).
sql
│ │ 9.5.1 二进制文件存取示例(VB&VBA).vbs │ │ a.txt │ │ Schema.ini │ │ │ └─其他 │ bcp-数据导入导出(全).
sql
│ bcp-数据导入导出-二进制文件.
sql
│ bcp-数据导出为文件.
sql
│ bcp表数据存为XML.
sql
│
SQL
Server
到
Oracle
连接服务器的实现.
sql
│
SQL
Server
到
SQL
BASE连接服务器的实现.
sql
│
SQL
Server
到SYBASE连接服务器的实现.
sql
│
sql
导出my
sql
.
sql
│ textcopy实现文件存取.
sql
│ Vb程序实现文件存取.
sql
│ 导入文本文件时如何指定
字段
类型.
sql
│ 导出northwind中Employees的图像.
sql
│ 将某个目录上的Excel表,导入到数据库中.
sql
│ 数据导入导出基本方法.
sql
│ 用ASP上传&下载文件.
sql
SQL
性能优化
1 性能优化 1.1 避免频繁 commit,尤其是把 commit 写在循环体中每次循环都进行commit。 1.2 使用绑定变量,避免常量的直接引用。 示例:以下书写不符合本规范。 INSERT INTO sm_users (user_id, user_name, created_by, creation_date) VALUES (1, 'Tang', -1, SYSDATE); 建议用如下方式操作: DECLARE v_user_id sm_users.user_id%TYPE; v_user_name sm_users_user_name%TYPE; v_created_by sm_users.created_by%TYPE; v_creation_date sm_users.creation_date%TYPE; BEGIN ... INSERT INTO sm_users (user_id, user_name, created_by, creation_date) VALUES (v_user_id, v_user_name, v_created_by, v_creation_date); END; 1.3 Operator 的使用规范 IN 比较容易写及清晰易懂 但效能是比较低的
ORACLE
试图将其转换成多个表的连接,如果转换不成功则先执行IN
里
面的子查询,再查询外层的表记录,如果转换成功则直接采用多个表的连接方式查询。由此可见用IN的
SQL
至少多了一个转换的过程。一般的
SQL
都可以转换成功,但对于含有分组统计等方面的
SQL
就
不能
转换了。 NOT IN 此操作是强列推荐不使用的,因为
不能
应用表的索引。 推荐方案:用NOT EXISTS 或(Outer-Join+判断为空)方案代替 例如: SELECT deptno FROM dept WHERE deptno NOT IN(SELECT deptno FROM emp) 建议写成: SELECT deptno FROM dept, emp WHERE dept.deptno = emp.deptno(+) AND emp.deptno IS NULL <> 永远不会用到索引的 推荐方案:用其它相同功能的操作运算代替,如: a<>0 改为 a>0 or a<0 a<>’’ 改为 a>’’ IS NULL 或IS NOT NULL 一般是不会应用索引的,因为B-tree索引是不索引空值的。 推荐方案:用其它相同功能的操作运算代替,如: a is not null 改为 a>0 或a>’’ 不允许
字段
为空,而用一个default代替空值,如业扩申请中状态区位不允许为空, default为申请。 > 及 < 有索引就会采用索引查找 但有的情况下可以对它进行优化 如一个表有100万记录,一个数值型
字段
A,30万记录的A=0,30万记录的A=1,39万记录的A=2,1万记录的A=3。那么执行A>2与A>=3的效果就有很大的区别了,因为A>2时
ORACLE
会先找出为2的记录索引再进行比较,而A>=3时
ORACLE
则直接找到=3的记录索引。 LIKE LIKE可以应用通配符查询,
里
面的通配符组合可能达到几乎是任意的查询,但是如果用得不好则会产生性能上的问题,如LIKE ‘%5400%’ 这种查询不会引用索引,而LIKE ‘X5400%’则会引用范围索引。性能肯定大大提高。 UNION
SQL
在运行时先取出数个查询的结果,再用排序空间进行排序删除重复的记录,最后返回结果集,如果表数据量大的话可能会导致用磁盘进行排序。 实际大部分应用中是不会产生重复的记录,推荐采用UNION ALL操作符替代UNION,因为UNION ALL操作只是简单的将两个结果合并后就返回。 Exists 示例:当有 A、B 两个结果集,当结果集 B 很大时,A 较小时,适用 exists,如: SELECT * FROM a WHERE EXISTS(SELECT 1 FROM b WHERE a.COLUMN = b.COLUMN); 当结果集 A 很大时,B 很小时,适用 in,如: SELECT * FROM a WHERE a.COLUMN IN(SELECT b.COLUMN FROM b) 1.4
SQL
书写的影响 同一功能同一性能不同写法
SQL
的影响 Select * from zl_yhjbqk Select * from dlyx.zl_yhjbqk(带表所有者的前缀) Select * from DLYX.ZL_YHJBQK(大写表名) Select * from DLYX.ZL_YHJBQK(中间多了空格) 以上四个
SQL
在
ORACLE
分析整理之后产生的结果及执行的时间是一样的,但是从
ORACLE
共享内存SGA的原理,可以得出
ORACLE
对每个
SQL
都会对其进行一次分析,并且占用共享内存,如果将
SQL
的字符串及格式写得完全相同则
ORACLE
只会分析一次,共享内存也只会留下一次的分析结果,这不仅可以减少分析
SQL
的时间,而且可以减少共享内存重复的信息,
ORACLE
也可以准确统计
SQL
的执行频率。 WHERE后面的条件顺序影响 Select * from zl_yhjbqk where dy_dj = '1KV以下' and xh_bz=1 Select * from zl_yhjbqk where xh_bz=1 and dy_dj = '1KV以下' 以上两个
SQL
中dy_dj(电压等级)及xh_bz(销户标志)两个
字段
都没进行索引,所以执行的时候都是全表扫描,第一条
SQL
的dy_dj = '1KV以下'条件在记录集内比率为99%,而xh_bz=1的比率只为0.5%,在进行第一条
SQL
的时候99%条记录都进行dy_dj及xh_bz的比较,而在进行第二条
SQL
的时候0.5%条记录都进行dy_dj及xh_bz的比较,以此可以得出第二条
SQL
的CPU占用率明显比第一条低。 查询表顺序的影响 在FROM后面的表中的列表顺序会对
SQL
执行性能影响,在没有索引及
ORACLE
没有对表进行统计分析的情况下
ORACLE
会按表出现的顺序进行链接,由此因为表的顺序不对会产生十分耗服务器资源的数据交叉。(注:如果对表进行了统计分析,
ORACLE
会
自动
先进小表的链接,再进行大表的链接) 对条件
字段
的一些优化 采用函数处理的
字段
不能
利用索引,如: substr(hbs_bh,1,4)=’5400’,优化处理:hbs_bh like ‘5400%’ trunc(sk_rq)=trunc(sysdate), 优化处理: sk_rq>=trunc(sysdate) and sk_rq
字段
不能
进行索引,如: ss_df+20>50,优化处理:ss_df>30 ‘X’||hbs_bh>’X5400021452’,优化处理:hbs_bh>’5400021542’ sk_rq+5=sysdate,优化处理:sk_rq=sysdate-5 hbs_bh=5401002554,优化处理:hbs_bh=’ 5401002554’ 注:此条件对hbs_bh 进行隐式的to_number转换,因为hbs_bh
字段
是字符型 条件内包括了多个本表的
字段
运算时
不能
进行索引,如: ys_df>cx_df,无法进行优化 qc_bh||kh_bh=’5400250000’,优化处理:qc_bh=’5400’ and kh_bh=’250000’ HINT 是在
ORACLE
产生的
SQL
分析执行路径不满意的情况下要用到的。它可以对
SQL
进行以下方面的提示 目标方面的提示: COST(按成本优化) RULE(按规则优化) CHOOSE(缺省)(
ORACLE
自动
选择成本或规则进行优化) ALL_ROWS(所有的行尽快返回) FIRST_ROWS(第一行资料尽快返回) 执行方法的提示: USE_NL(使用NESTED LOOPS方式联合) USE_MERGE(使用MERGE JOIN方式联合) USE_HASH(使用HASH JOIN方式联合) 索引提示: INDEX(TABLE INDEX)(使用提示的表索引进行查询) 其它高级提示(如并行处理等等) 1.5 索引的规则: 建立索引常用的原则如下: 1. 表的主键、外键必须有索引 2. 数据量超过 1000 行的表应该有索引 3. 经常与其它表进行连接的表,在边接
字段
上应建立索引 4. 经常出现在 where 子句中的
字段
且过滤性极强的,特别是大表的
字段
,应该建立索引 5. 索引
字段
,尽量避免值为 null 6. 复合索引的建立需要仔细分析;尽量考虑用单
字段
索引代替: 正确选择复合索引中的第一个
字段
,一般是选择性较好的且在 where 子句中常的
字段
上。 复合索引的几个
字段
是否经常同时以and方式出现在where子句中?单
字段
查询是否极少甚至没有?如果是,则可以建立复合索引;否则考虑单
字段
索引。 如果复合索引中包含的
字段
经常单独出现在 where 子句中,则分解为多个单
字段
索引。 如果复合索引所包含的
字段
超过 3 个,那么仔细考虑其必要性,考虑减少复合的
字段
。 如果既有单
字段
索引,又有这几个
字段
上的复合索引,一般可以删除复合索引; 7. 频繁 DDL 的表,不要建立太多的索引 8. 删除无用的索引,避免对执行计划造成负面影响 9. 让
SQL
语句用上合理的索引,合理让
SQL
语句使用索引的原则如下: 首先,看是否用上了索引,对于该使用索引而没有用上索引的
SQL
语句,应该想办法用上索引。 其次,看是否用上正确的索引了,特别复杂的
SQL
语句,当其中 where 子句包含多个带有索引的
字段
时,更应该注意索引的选择是否合理。错误的索引不仅不会带来性能的提高,相反往往导致性能的降低。 针对如何用上合理的索引,以
Oracle
数据中的例子进行说明: 任何对列的操作都可能导致全表扫描,这
里
所谓的操作包括数据库函数、计算表达式等等,查询时要尽可能将操作移至等式的右边,甚至去掉函数。 避免不必要的类型转换,要了解“隐藏”的类型转换。 增加查询的范围,限制全范围的搜索。 索引选择性低,但资料分布差异很大时,仍然可以利用索引提高效率。
Oracle
优化器无法用上合理索引的情况下,利用 hint 强制指定索引。 使用复合索引且第一个索引
字段
没有出现在 where 中时,建议使用 hint 强制。 1.6 索引使用优化 建立Plan_Table CREATE TABLE PLAN_TABLE ( STATEMENT_ID VARCHAR2(30), TIMESTAMP DATE, REMARKS VARCHAR2(80), OPERATION VARCHAR2(30), OPTIONS VARCHAR2(30), OBJECT_NODE VARCHAR2(128), OBJECT_OWNER VARCHAR2(30), OBJECT_NAME VARCHAR2(30), OBJECT_INSTANCE NUMBER(38), OBJECT_TYPE VARCHAR2(30), OPTIMIZER VARCHAR2(255), SEARCH_COLUMNS NUMBER(38), ID NUMBER(38), PARENT_ID NUMBER(38), POSITION NUMBER(38), OTHER LONG ) Syntax 说明: explain plan set statement_id = user_define for select ... 将结果显示 SELECT LPAD(' ', 2 *(LEVEL - 1)) || operation op, options, object_name, POSITION FROM plan_table START WITH ID = 0 AND STATEMENT_ID = user_define CONNECT BY PRIOR ID = parent_id AND STATEMENT_ID = user_define 示例 如要测试下面
SQL
: SELECT c.short, a.cday, a.card_no, a.qty FROM sales.stockiohis a, sales.product_info b, sales.vendor c WHERE a.card_no = b.card_no AND b.vendorid = c.vendorid AND a.produce_no = '2007090001' AND a.CATEGORY = '10' AND a.iotype = '1' 新增文件:例 d:\mydoc\plan.
sql
'0001'为user_define为使用者自定义编号 EXPLAIN PLAN SET STATEMENT_ID = '0001' FOR SELECT 'X' FROM sales.stockiohis a ,sales.product_info b ,sales.vendor c WHERE a.card_no = b.card_no AND b.vendorid = c.vendorid AND a.produce_no = '2007090001' AND a.CATEGORY = '10' AND a.iotype = '1' / SET arraysize 1 SET line 100 COLUMN op format a40 COLUMN object_name format a20 COLUMN options format a20 SELECT LPAD(' ', 2 *(LEVEL - 1)) || operation op, options, object_name, POSITION FROM plan_table START WITH ID = 0 AND STATEMENT_ID = '0001' CONNECT BY PRIOR ID = parent_id AND STATEMENT_ID = '0001' / DELETE FROM plan_table WHERE STATEMENT_ID = '0001' / COMMIT / 结果 1.7 避免不必要的排序 说明:对查询结果进行排序会大大的降低系统的性能,group与union都会对数据作排序,要耗费较多的内存,视状况用union all既可,不然有时数据太大又要进行union的排序,会导致
Oracle
数据库SORT_AREA_SIZE不足发生系统错误。 1.8 对于数字型的Primary Key,建议用序列 sequence 产生。 说明:除非是单据的单号,要求必须是唯一,并且依据
流水号
不可以跳号,不然在大量交易的表格中,不在乎跳耗时,要取得唯一的Primary Key 建议使用
Oracle
Sequence这样速度会较快,而且不会有锁定(Lock)的问题。
Oracle
数据库设计策略及规范.docx
Oracle
数据库设计策略及规范 设计策略及规范 1. 目的 定义
Oracle
数据库设计规范,作为数据库规划、设计、开发以及维护人员的技术参考资料。用以规范和指导相关人员的设计行为。 2. 概述 本文档根据
Oracle
数据库性能特点,描述对表、视图、存储过程、对象命名等方面的设计规范。 3. 基本策略 3.1 设计策略 分类拆分数据量大的表。 对于经常使用的表(如某些参数表或代码对照表),由于其使用频率很高,要尽量减少表中的记录数量。例如,银行的户主账表原来设计成一张表,虽然可以方便程序的设计与维护,但经过分析发现,由于数据量太大,会影响数据的迅速定位。如果将户主账表分别设计为活期户主账、定期户主账及对公户主账等,则可以大大提高查询效率。 分区策略 在拥有数500行以上的表时,采用分区策略。 索引设计。 对于大的数据库表,合理的索引能够提高整个数据库的操作效率。在索引设计中,索引
字段
应挑选重复值较少的
字段
;在对建有复合索引的
字段
进行检索时,应注意按照复合索引
字段
建立的顺序进行。例如,如果对一个5万多条记录的流水表以日期和
流水号
为序建立复合索引,由于在该表中日期的重复值接近整个表的记录数,用
流水号
进行查询所用的时间接近3秒;而如果以
流水号
为索引
字段
建立索引进行相同的查询,所用时间不到1秒。因此在大型数据库设计中,只有进行合理的索引
字段
选择,才能有效提高整个数据库的操作效率。 有时候为了提高性能。减少表的关联,恰当的数据冗余是允许的。 索引对新增,删除,更新的性能影响比较大,对相关的表的索引使用要权衡 为表和索引建立不同的表空间,禁止在系统表空间中放入非核心
oracle
系统成分的对象, 确保数据表空间和索引表空间位于不同的磁盘磁盘驱动器上。 对于经常发生同时查询或频繁查询的表,最好把他放到不同的磁盘空间上 4. 逻辑设计规范 4.1 范式 如果没有性能上的原因,应该使用关系数据库理论,达到较高的范式,避免数据冗余。 如果在数据量上与性能上无特别要求,考虑到实现的方便性可以有适当的数据冗余,但基本上要达到3NF。 4.2 表设计 对于数据量比较大的表,根据表数据的属性进行分区,以得到较好的性能。如果表按某些
字段
进行
增长
,则采用按
字段
值范围进行范围分区;如果表按某个
字段
的几个关键值进行分布,则采用列表分区;对于静态表,则采用Hash分区或列表分区;在范围分区中,如果数据按某关键
字段
均衡分布,则采用子分区的复合分区方法。 每个表均创建类型为Sequence的主键
字段
。 每个表中需含有如下几个基本
字段
:一个表的SEQ号,4个创建信息
字段
,5-8个备用
字段
,一个删除标记
字段
,最好还有一个行版本
字段
字段
名 类型 备注 业务SEQ号 整数型 作为表主键 OBLIGATE1 字符型 备用
字段
OBLIGATE2 OBLIGATE3 OBLIGATE4 OBLIGATE5 CREATE_USER_ID VARCHAR 创建用户ID CREATE_DATETIME DATE 创建时间 LAST_UPDATE_USER_ID VARCHAR 更新用户ID LAST_UPDATE_DATETIME TIMESTAMP 更新时间 不要用Identify
字段
作为表的主键与其它表关联。 4.3 索引设计 常规OLTP应用,创建B-TREE索引,不创建位图索引。 不需要为小型数据表(<5000)创建索引。 给单个表创建的索引不超过5个,特别是海量交易类表。 索引条件查询结果记录,不超总记录的20%。 不要给固定选项的
字段
创建独立索引。 如只有'男,女'的性别
字段
;'是,否'的状态
字段
等,不要创建独立索引,位可以建立复合索引。 对于复合索引,索引
字段
顺序比较关键,把查询频率比较高的
字段
排在索引组合的最前面。 索引放到独立的表空间,该表空间不需要REDO LOG。 含有外键约束的表的
字段
,必须有单独索引。如订单明细的表头外键。 5. 对象命名规范 5.1 一般规范 5.1.1 语言 命名使用英文单词,不使用复数。
Oracle
数据库设计策略及规范全文共3页,当前为第1页。 英文单词使用同对象本身意义相对或相近的单词。选择最简单或最通用的单词。
不能
使用毫不相干的单词来命名。
Oracle
数据库设计策略及规范全文共3页,当前为第1页。 当一个单词
不能
表达对象含义时,用词组组合,如果组合太长时,采用简写或缩写,缩写要基本能表达原单词的意义。 当出现对象名重名时,是不同类型对象时,加类型前缀或后缀以示区别。 禁止使用中文或拼音缩写进行命名 5.1.2 大小写 名称一律大写,以方便不同数据库移植,以及避免程序调用问题 5.1.3 单词分隔 命名的各单词之间使用下划线进行分隔。 命名的各单词之间不允许有空格存在 5.1.4 保留字 命名不允许使用
SQL
保留字。 5.1.5
基础和管理
17,377
社区成员
95,128
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章