
Oracle 数据库开发
文章平均质量分 70
lovely可爱欧辰
余好读书,乐思善疑。有过目不忘之能,亦有掩卷即忘之病,故尝攥文以记之。
展开
-
动态 SQL、EXECUTE IMMEDIATE、using、into、returning
很多时候我们需要在存储过程中使用动态的SQL,要怎么用好动态SQL呢,怎样执行效率最高呢。下面来介绍一下,如何使用动态SQL操作数据库。在存储过程中执行一个简单的SQL语句使用下面的方法即可。DECLAREBEGIN /* 使用该方法来创建一个新数据表,但这方法需要当前用户具有创建表的权限。 */ EXECUTE IMMEDIATE 'create table tes原创 2014-11-23 07:46:32 · 4331 阅读 · 0 评论 -
Merge into的使用详解-你Merge了没有
Merge是一个非常有用的功能,类似于Mysql里的insert into on duplicate key. Oracle在9i引入了merge命令, 通过这个merge你能够在一个SQL语句中对一个表同时执行inserts和updates操作. 当然是update还是insert是依据于你的指定的条件判断的,Merge into可以实现用B表来更新A表数据,如果A表中没有,则把B表转载 2013-08-16 16:52:28 · 1815 阅读 · 0 评论 -
运行脚本时用"SPOOL"保存运行结果的问题
很多人都遇到过这样的情况,在sqlpluws中运行脚本时用SPOOL保存运行结果, 但SPOOL每次都将原来的文件覆盖了, 目前的Oracle10g就没这个问题了,示例如下:e:>sqlplus xsb@tns1SQL*Plus: Release 10.1.0.2.0 - Production on 星期三 11月 12 20:13:21 2007Copyr转载 2013-03-28 11:51:02 · 1501 阅读 · 0 评论 -
%date:~0,10%用法
其实很简单:0,开始位置;10,取字符的个数;例如当前时间是:日期是:%date:~0,10%就是2008-05-29%time:~0,2%就是14%time:~3,2%就是13如果我们做一个备份时就显得有些用处,可以把当时做备份文件用此命名,例如:path c:\Program Files\WinRARrar a .\bak%date:~0,1转载 2013-03-28 17:14:28 · 2654 阅读 · 0 评论 -
Oracle之AUTHID CURRENT_USER
没有AUTHID CURRENT_USER表示定义者权限(definer rights),以定义者身份执行;加上AUTHID CURRENT_USER表示调用者权限(invoker rights),以调用者身份执行。 例: 1. 创建两个用户:xxpo,xxgl2. 在xxpo下创建一张表:xxpo_authid_test[c转载 2013-04-09 12:56:40 · 3209 阅读 · 0 评论 -
Sqlplus导出excel文件
1.D盘下新建两个sql脚本:empmail.sql , emp.sql,脚本内容如下: 1)empmain.sql: set linesize 200 set term off verify off feedback off pagesize 999 set markup html on entmap ON spool on preformat off spoo转载 2013-03-11 23:38:23 · 3214 阅读 · 0 评论 -
使用SQLPLUS生成HTML报表
我们可以在SQLPLUS中手工运行AWR,ASH的脚本生成HTML报表,下面来简单讲讲怎么利用SQLPLUS来生成HTML报表在SQLPLUS中有个命令(具体可以参考官方文档SQLPLUS部分)SET MARK[UP] HTML [ON | OFF] [HEAD text] [BODY text] [TABLE text] [ENTMAP {ON | OFF}] [SPOOL {O转载 2013-03-11 23:39:10 · 1351 阅读 · 0 评论 -
ORACLE中科学计数法显示问题的解决
测试目的: 解决在ORACLE使用中遇到的科学计数法问题。 测试环境: SQL> select * from v$version 2 where rownum BANNER ---------------------------------------------------------------- Oracle转载 2013-03-10 13:42:25 · 11781 阅读 · 0 评论 -
利用dbms_metadata.get_ddl查看DDL语句(原创)
当我们想要查看某个表或者是表空间的DDL的时候,可以利用dbms_metadata.get_ddl这个包来查看。dbms_metadata包中的get_ddl函数详细参数 GET_DDL函数返回创建对象的原数据的DDL语句,详细参数如下-- object_type ---需要返回原数据的DDL语句的对象类型-- name --- 对象名称-- schema ---对象所在的原创 2013-01-15 12:19:12 · 1734 阅读 · 0 评论 -
windows的定时任务设置
windows 的Schedule Task创建配置1.点击“开始”2.点击“控制面板”3.双击“管理工具”4.双击“任务计划”5.双击“添加任务计划”6.到了“任务计划向导”界面,点击“下一步”7.点击“浏览”选择需要定时运行的程序(exe文件,bat文件,com文件,sys文件)然后确定原创 2012-11-21 17:01:55 · 1061 阅读 · 0 评论 -
索引unusable|disable|enable
ORACLE使索引变成不可用的状态:alter index index_name unusable;执行成功后,如果后续需要再用到该索引的话,就必须重建。重建后会自动变成usable。根据ORACLE官方文档的说法(An unusable index must be rebulit , or dropped and re-created , before it can be used.转载 2012-11-12 21:38:39 · 988 阅读 · 0 评论 -
基于系统级触发器的审计功能
从Oracle8i开始,Oracle引入了特殊的触发器,这些触发器并不是和特殊的DML事件相关联的(DML事件,如,INSERT,UPDATE和DELETE)。这些系统级别的触发器包括:l 数据库启动/关闭触发器l DDL触发器l 最终用户登陆/注销触发器l 系统错误触发器l D转载 2012-09-24 20:25:04 · 947 阅读 · 0 评论 -
有不同列数的两个表的UNION
当合并两个表源时列数不同,只要向其中一个表源中添加列,就可以使两表源的列数相同合并列了。下面合并“select 姓名,性别,年龄 from student”和“select 课程代号,课程内容,null from course”查询,用NULL值添加“course”表。在查询分析器中输入的SQL语句如下:use student select 姓名,性别原创 2013-08-29 22:06:49 · 16540 阅读 · 0 评论 -
Union和Union All的区别
假设我们有一个表Student,包括以下字段与数据: [c-sharp] view plaincopydrop table student; create table student ( id int primary key, name nvarchar2(50) not null, score原创 2013-08-29 22:03:35 · 1718 阅读 · 0 评论 -
WITH AS 用法
一.WITH AS的含义 WITH AS短语,也叫做子查询部分(subquery factoring),可以让你做很多事情,定义一个SQL片断,该SQL片断会被整个SQL语句所用到。有的时候,是为了让SQL语句的可读性更高些,也有可能是在UNION ALL的不同部分,作为提供数据的部分。特别对于UNION ALL比较有用。因为UNION ALL的每个部分可能相同,但是如果每个原创 2013-09-23 15:57:58 · 1053 阅读 · 0 评论 -
SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
Insert是T-sql中常用语句,Insert INTO table(field1,field2,...) values(value1,value2,...)这种形式的在应用程序开发中必不可少。但我们在开发、测试过程中,经常会遇到需要表复制的情况,如将一个table1的数据的部分字段复制到table2中,或者将整个table1复制到table2中,这时候我们就要使用SELECT INTO 和 I转载 2014-11-20 11:26:18 · 747 阅读 · 0 评论 -
SQLCode
SQLCode:数据库操作的返回码,其中0--成功;-1--失败;100--没有检索到数据。[1] 例如,IF SQLCA.SQLCode thenMessgeBox("连接失败","不能连接数据库")RETURNEND IF另外SQLCODE经常与SQLERRM连用例如:DBMS_OUTPUT.PUT_LINE(SQLCODE||'----转载 2014-11-02 21:57:55 · 1985 阅读 · 0 评论 -
安装完Oracle 11g之后启动SQL Developer 时报cannot find a j2se sdk错误的解决办法
启动SQL Developer 时选择Java.exe时报 一般性不知道的选择Java.exe文件时都会自然而然的去选择本地自己安装在C盘目录下的EXE文件。解决办法: 选择Java.EXE文件时选择Orcale安装目录下的Java.exe,如E:\app\wb052\product\11.2.0\client_1\jdk\bin原创 2014-11-15 18:41:59 · 6504 阅读 · 0 评论 -
Toad for Oracle工具的使用(二)
脚本管理器 (Script manager):通过Script Manager,可以对常用的SQL 脚本进行集中管理。还可以做如下工作:转载 2014-10-02 09:59:35 · 8841 阅读 · 1 评论 -
Toad for Oracle工具的使用(一)
在Oracle应用程序的开发过程中,访问数据库对象和编写SQL程序是一件乏味且耗费时间的工作,对数据库进行日常管理也是需要很多SQL脚本才能完成的。Quest Software为此提供了高效的Oracle应用开发工具-Toad(Tools of Oracle Application Developers)。在Toad的新版本中,还加入了DBA(Database Administrator 数据库管转载 2014-10-02 09:56:16 · 55795 阅读 · 4 评论 -
SecureCRT的自动登录和自动脚本记录功能图解
一.实现自动登陆SecureCRT 的自动登陆是在它的 会话选项—登陆动作—自动登陆 下设置的1 192.168.10.1的会话上点右键,选择属性 3 选择登陆登陆动作选项卡,对自动登陆多选框打√ 4选中login 和 password分别编辑 预期username 是路由器准备给你发来的登陆提示以telnet转载 2014-10-26 09:54:20 · 25318 阅读 · 0 评论 -
使用SecureCRT录制自动脚本
使用SecureCRT自带的脚本录制功能。我用的版本是V5.5.3。例子就是之前自动su的部分。 SecureCRT下载地址:http://down.ddvip.com/view/119519362017370.html 建立登录会话并登录服务器 开始录制脚本 Script -> Start Recording Script 输入登录的命令 LANG=en_US转载 2014-10-26 09:52:18 · 10858 阅读 · 0 评论 -
在sqlplus中操作blob和clob
Tom在他的《Expert one on one oracle》给出了sqlplus中将文件load进BLOB或者CLOB字段的例子。这里保存一份以备急用。create directory utllobdir as 'd:'create table blobtest(col1 BLOB);create table clobtest(col1 cLOB);--insert BLO转载 2014-09-28 09:17:34 · 3627 阅读 · 1 评论 -
ORACLE:RETURNING 子句
RETURNING 自己通常结合DML 语句使用。(INSERT UPDATE DELETE)使用方法:UPDATE table_name SET expr1RETURNING column_nameINTO xxxINSERT: 返回的是添加后的值UPDATE:返回时更新后的值DELETE:返回删除前的值RETURNING 可以再sqlplus转载 2014-09-28 09:38:04 · 1717 阅读 · 0 评论 -
oracle 触发器的种类和触发事件
触发器的种类和触发事件 触发器必须由事件才能触发。触发器的触发事件分可为3类,分别是DML事件、DDL事件和数据库事件。 每类事件包含若干个事件,如下所示。数据库的事件是具体的,在创建触发器时要指明触发的事件。 种 类 关 键 字 含 义 Sql代码 DML事件(3种) INSERT 在表或视图中插入数据时触发 UPDATE转载 2014-09-15 21:13:27 · 7992 阅读 · 0 评论 -
Oracle 如何修改列的数据类型
对字段操作操作方法更新字段名alter table TABLE_NAME rename column column_old to column_new;添加字段alter table TABLE_NAME add COLUMN_NAME varchar(10);删除字段alter table TABLE_NAME dr原创 2013-10-09 22:36:23 · 1092 阅读 · 0 评论 -
ORACLE中的INTERVAL类型
ORACLE中的INTERVAL类型INTERVAL数据类型用来存储两个时间戳之间的时间间隔。可以指定years and months,或者days,hours,minuts,seconds之间的间隔。ORACLE支持两种INTEVAL类型,它们分别是YEAR TO MONTH和DAY TO SECOND。每个类型都包含leading field和trailing field。主参数定义要原创 2012-09-14 13:47:53 · 4980 阅读 · 0 评论 -
oracle的命名规则
oracle中的各种数据对象,包括表名称,视图,等等名称的命名都需要遵循oracle的命名规则。oracle的命名规则分为标准命名方式和非标准命名方式。标准命名方式需要满足以下的条件:以字符打头30个字符以内只能包含A-Z,a-z,0-9,_,$,and,$和#不能和同一个用户下的其他对象重名不能是oracle服务器的保留字例如:下面的SQL语句是错误的:create原创 2012-09-14 12:58:51 · 1063 阅读 · 0 评论 -
SQL子查询总结
在一个SQL语句中嵌套另一个SQL语句成为子查询。当一个问题无法通过一部解决时可考虑使用子查询,一个出现在SELECT语句的FROM子句中的子查询被称为"内嵌视图";一个出现在SELECT语句的WHERE子句中的子查询被称为"内嵌子查询",一个子查询能够包含另一个子查询,在一个顶级的查询中,Oracle数据库没有限制在FROM子句中的嵌套层数,可以在一个WHERE子句中嵌套255层子查询子原创 2012-09-14 12:39:30 · 2026 阅读 · 0 评论 -
怎样使用DBMS_OUTPUT.PUT_LINE?
怎样使用DBMS_OUTPUT.PUT_LINE?如果你是再SQL*PLUS中,只要再环境中打出SET SERVEROUTPUT ON就可以了.还有一种方法:就是使用环境中的绑定变量也可以.再环境中定义: VARIABLE NAME VARCHAR2(50);然后把过程添加一个OUT类型的参数如: P_NAME OUT depositor.custo转载 2012-01-12 23:16:55 · 2224 阅读 · 0 评论 -
小议Oracle外键约束修改行为
小议Oracle外键约束修改行为(一)Oracle的外键用来限制子表中参考的字段的值,必须在主表中存在。而且在主表的记录发生变化导致外键参考唯一约束值发生了变化时,定义了一系列的动作。在SQL92标准中定义了几种外键改变后,如何处理子表记录的动作,其中包括:限制Restrict:这种方式不允许对被参考的记录的键值执行更新或删除的操作;置为空S转载 2011-12-27 15:32:29 · 4330 阅读 · 0 评论 -
从Oracle9i中发送电子邮件
Oracle的包utl_smtp提供了从数据库中直接发送电子邮件的功能,这里介绍一下其使用方法网上找到的例子以及Oracle文档中的例子都没有提到authorized的问题,我的测试中使用的是163的免费信箱,发送时老是报错:ORA-20000: Failed to send mail due to the following error: ORA-29279: SMTP 永久性错转载 2011-12-12 18:22:41 · 995 阅读 · 0 评论 -
ORACLE触发器和new、old特殊变量
ORACLE触发器和new、old特殊变量:new --为一个引用最新的列值;:old --为一个引用以前的列值; 这两个变量只有在使用了关键字 "FOR EACH ROW"时才存在.且update语句两个都有,而insert只有:new ,select 只有:old;系统中的触发器实例:create or replace trigger JBPM.TIB_转载 2011-12-12 14:17:20 · 3430 阅读 · 0 评论 -
数据库空间估算
在做数据库设计过程中必须要进行多个方面的计划,其中空间估算尤其是一个DBA所不能回避的问题。 空间估算的准确与否决定了 1。系统对资源的需求--投资问题 2。数据分布是否合理--数据结构设计问题 3。应用设计,特别是数据存取方面的设计--系统运行性能问题等。 同时,由于ORACLE数据类型的多样,数据模型的转载 2011-11-24 09:59:07 · 5983 阅读 · 0 评论 -
oracle数据库空间估算
oracle数据库空间估算如何计算存储空间,整理了一下我们在设计一个数据库的时候除了考虑数据块的大小,可能还要和开发沟通,这个数据库要存储多少数据,那么这个数据库应该具备多大的容量来满足一个应用的存储呐?DBA就需要计算一下这个应用占用多大的存储空间首先我们来看一下几个换算的单位:1K=1024Bytes;1M=1024K1G=1024M1T=1024G转载 2011-11-24 09:57:57 · 4417 阅读 · 0 评论 -
oracle获取字符串长度函数length()和lengthb()
lengthb(string)计算string所占的字节长度:返回字符串的长度,单位是字节length(string)计算string所占的字符长度:返回字符串的长度,单位是字符对于单字节字符,LENGTHB和LENGTH是一样的.如可以用length(‘string’)=lengthb(‘string’)判断字符串是否含有中文。注:一个汉字原创 2011-11-23 15:33:24 · 7664 阅读 · 0 评论 -
字符集编码详解【ASCII 、GB2312、GBK、GB18030、unicode、UTF-8】(转)
ASCII字符集编码 ASCII码是7位编码,编码范围是0x00-0x7F。ASCII字符集包括英文字母、阿拉伯数字和标点符号等字符。其中0x00-0x20和0x7F共33个控制字符。 只支持ASCII码的系统会忽略每个字节的最高位,只认为低7位是有效位。HZ字符编码就是早期为了在只支持7位ASCII系统中传输中文而设计的编码。早期很多邮件系统也只支持ASCII编码转载 2011-11-23 15:34:02 · 1222 阅读 · 0 评论 -
Oracle truncate table 与 delete tabel的区别(转)
Oracle truncate table 与 delete tabel的区别(转) 一、1.delete产生rollback,如果删除大数据量的表速度会很慢,同时会占用很多的rollback segments .truncate 是DDL操作,不产生rollback,速度快一些. Truncate table does not generate rollback infor转载 2011-11-21 18:49:38 · 816 阅读 · 0 评论 -
oracle数据类型大小限制
数据类型参数描写char(n)n=1 to 2000字节 定长字符串,n字节长,如果不指定长度,缺省为1个字节长(一个汉字为2字节)varchar2(n) n=1 to 4000字节可变长的字符串,具体定义时指明最大长度n,转载 2011-11-21 10:27:35 · 7177 阅读 · 0 评论 -
Oracle 数据类型及存储方式
Oracle 数据类型及存储方式 袁光东 原创 概述 通过实例,全面而深入的分析oralce的基本数据类型及它们的存储方式。以ORACLE 10G为基础,介绍oralce 10g引入的新的数据类型。让你对oracle数据类型有一个全新的认识。揭示一些不为人知的秘密和被忽略的盲点。从实用和优化的角度出发,讨论每种数据类型的特点。从这里开始oracle之旅! 第一部份 字符类型 §转载 2011-11-16 11:13:48 · 1301 阅读 · 0 评论