
Oracle
文章平均质量分 60
luckhouge
这个作者很懒,什么都没留下…
展开
-
游 标
对于普通数据库,主语言是面向记录的,一组主变量一次只能存放一条记录。[b][size=middle]游标的优点[/size][/b]游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL 选择语句相关联因为游标由结果集(可以是零条、一条或由相关的选择语句检索出的多条记录)和结果集中指向特定...原创 2010-08-10 08:52:37 · 96 阅读 · 0 评论 -
Java 调用Oracle 函数
[b]oracle的存储过程和函数区别[/b]1、都可以使用out参数返回多个值,一般原则是有多个返回值使用过程;如果只有一个返回值,使用函数2、过程调用本身就是一条pl/sql语句,而函数只能作为表达式的一部分进行调用以获得user_objects表的object_name为例,由于只返回一个字段,所以使用oracle函数,第一种方式返回标量数据类型,第二种方式返回游标类...原创 2010-08-12 10:26:44 · 615 阅读 · 0 评论 -
Java 调用Oracle 存储过程
1、存储过程是指保存在数据库并在数据库端执行的程序,它有两种类型。一种类似于SELECT查询,用于检索数据,检索到的数据能够以数据集的形式返回给客户。另一种类似于INSERT或DELETE查询,它不返回数据,只是执行一个动作。有的服务器允许同一个存储过程既可以返回数据又可以执行动作。Oracle使用PL/SQL,PostgreSQL使用pl/pgsql,DB2使用Procedural SQL....原创 2010-08-12 10:45:48 · 132 阅读 · 0 评论 -
存储过程中 调用 Java
一、如何创建java存储过程?通常有三种方法来创建java存储过程。1. 使用oracle的sql语句来创建: e.g. 使用create or replace and compile java source named "" as 后边跟上java源程序。要求类的方法必须是public static的,才能用于存储过程。SQL> create or ...原创 2010-08-12 11:39:07 · 703 阅读 · 0 评论 -
Oracle 之 Sequence
1、Create Sequence 你首先要有CREATE SEQUENCE或CREATE ANY SEQUENCE权限, CREATE SEQUENCE emp_sequence INCREMENT BY 1 -- 每次加几个 START WITH 1 -- 从1开始计数 NOMAXVALUE -- 不设置最大值 NOCYCLE ...原创 2010-08-13 09:01:44 · 84 阅读 · 0 评论 -
关于Oracle 10g 默认用户、密码及登录问题
Oracle 10g 默认用户、密码参见[url]http://sappick.iteye.com/blog/150203[/url]登录方式:1. sqlplus sys/change_on_install as sysdba; 可直接以管理员登录,change_on_install是安装时设置的密码。2. sqlplus /nologSQl>connect ...原创 2010-09-02 19:02:51 · 205 阅读 · 0 评论 -
修改Oracle端口
[code="java"][/code]function StorePage(){d=document;t=d.selection?(d.selection.type!='None'?d.selection.createRange().text:''):(d.getSelection?d.getSelection():'');void(keyit=window.open('http://www.3...原创 2010-09-02 19:20:52 · 107 阅读 · 0 评论 -
Oracle 关于密码及密码文件
以安装Oracle的用户进入系统:忘记密码:1.在命令行下输入 sqlplus /nolog 进入SQL*PLUS2.输入:conn / as sysdba3.修改密码:alter user sys identified by "admin"4.然后就可以使用sys用户密码admin登陆了注意:密码的第一个字符不能是数字的创建密码文件:1.创建密码文件的命令...原创 2010-09-29 10:49:52 · 241 阅读 · 0 评论 -
win7下安装Oracle10g
解决方案: 步骤一:在解压出的oracle文件夹中搜索refhost.xml文件,搜索结果出现2条符合条件文件,这两个文件均需要修改.打开文件发现内容中有包含...5.0 6.0等系统说明,在其中添加 1. 2. 3. 注:两个文件均需添加 步骤二:在安装文件夹根目录内进入install文件夹,...原创 2010-10-03 01:01:27 · 85 阅读 · 0 评论 -
Oracle 解锁
在for update 查询时,线程被阻塞查询阻塞线程:select object_name as 对象名称,s.sid,s.serial#,p.spid as 系统进程号from v$locked_object l , dba_objects o , v$session s , v$process pwhere l.object_id=o.object_id and l.se...原创 2011-08-22 11:32:07 · 79 阅读 · 0 评论 -
Oracle--create user& tablespace
-建立表空间(oracle中的tablespace(表空间)就相当于sqlserver的database) CREATE TABLESPACE data01DATAFILE 'D:\oracle\ora92\oradata\db\DATA01.dbf' SIZE 200MUNIFORM SIZE 128k;#指定区尺寸为128k,如不指定,区尺寸默认为64k --建立临...原创 2010-10-29 09:22:37 · 387 阅读 · 0 评论 -
查看Oracle表空间 tablespace
1. 查看所有表空间大小SQL> select tablespace_name,sum(bytes)/1024/1024 from dba_data_files 2 group by tablespace_name;或者 select tablespace_name from user_tablespaces;2. 已经使用的表空间大小SQL> select t...原创 2010-10-29 09:32:04 · 445 阅读 · 0 评论 -
outer join , inner join , cross join
[code="java"]select * from table1;[/code]ID NAME1 wang2 liu3 yang[code="java"]select * from table2;[/code]ID SCORE2 803 954 90----------------------------------一,外连接1.左外连接(...原创 2010-11-30 13:18:48 · 81 阅读 · 0 评论 -
exists与in
1. exists: 不缓存exists()结果集 首先取出外层中的第一个元组,再执行内层查询,将外层的第一元组代入,若内层查询为真,返回外层表中的第一元组,接着取出第二元组,执行相同算法。[一种通俗的可以理解为:将外查询表的每一行,代入内查询作为检验,如果内查询返回的结果取非空值,则EXISTS子句返回TRUE,这一行行可作为外查询的结果行,否则不能作为结果。]2. In...原创 2011-07-27 20:53:20 · 196 阅读 · 0 评论 -
Merge Into
[b]用途 [/b]merge 命令可以用来用一个表中的数据来修改或者插入到另一个表。插入或者修改的操作取决于on子句的条件。该语句可以在同一语句中执行两步操作,可以减少执行多条insert 和update语句。merge是一个确定性的语句,即不会在同一条merge语句中去对同一条记录多次做修改操作。[b]语法 [/b]其中,merge_insert_claus...原创 2010-08-12 10:22:57 · 66 阅读 · 0 评论 -
Returnning Into 总结
ORACLE的DML语句中可以指定RETURNING语句。使用起来也很简单,和SELECT INTO语句没有多大区别。RETURNING语句的使用在很多情况下可以简化PL/SQL编程。 DELETE操作:RETURNING返回的是DELETE之前的结果; INSERT操作:RETURNING返回的是INSERT之后的结果; UPDATE操作:的RETURNING语句是返...原创 2010-08-12 09:45:02 · 209 阅读 · 0 评论 -
显式-隐式游标
[code="java"]DECLARE t_a VARCHAR2(50); CURSOR cur_b(t_c VARCHAR2)IS SELECT d4.d401_02 FROM d401 d4 WHERE d4.d401_01 = t_c ; BEGIN OPEN cur_b('410126197904190319'); LOOP ...原创 2010-08-10 14:11:03 · 105 阅读 · 0 评论 -
for update与for update of
“FOR UPDATE OF” 是“行锁”(locks on the row) -- 不存在字段加锁!这“行锁”的作用1.始于一个CURSOR 的OPEN时候,2.终于一个完整的传送 -- COMMIT 或ROLLBACK,而不是CURSOR 的完结(CLOSE your_cursor_name) 。3>.若有两个CURSOR 对同一“行”(row)中任意字段(c...原创 2010-08-10 14:59:54 · 443 阅读 · 0 评论 -
PL/SQL 概述与流程控制语句
[b]SQL:[/b] 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单地调用相应语句来直接取得结果即可。[b]PL/SQL[/b](Procedural Language/SQL)是一种过程化语言,属于第三代语言,它与C、C++、Java...原创 2010-08-10 16:52:39 · 175 阅读 · 0 评论 -
oracle-函数
函数用于返回特定的数据,当建立函数时,在函数头部必须包含return子句。而在函数体内必须包含return语句返回的数据。可以将经常需要进行的计算写成函数.函数的调用是表达式的一部分,而过程的调用是一条PL/SQL语句.[b]语法:[/b][code="java"]create [or replace] function fun_name ([para_name [in |...原创 2010-08-10 17:08:03 · 82 阅读 · 0 评论 -
包package
包用于在逻辑上组合过程和函数,它由包规范和包体两部分组成。(1). 我们可以使用create package命令来创建包。 包的规范只包含了过程和函数的说明,但是没有过程和函数的实现代码。包体用于实现包规范中的过程和函数。--创建一个包sp_package --声明该包有一个过程update_sal --声明该包有一个函数annual_income [code="java"...原创 2010-08-10 17:16:05 · 116 阅读 · 0 评论 -
触发器
功能:1、 允许/限制对表的修改2、 自动生成派生列,比如自增字段3、 强制数据一致性4、 提供审计和日志记录5、 防止无效的事务处理6、 启用复杂的业务逻辑开始create trigger biufer_employees_department_id before insert or update of department_id on emp...原创 2010-08-10 17:22:29 · 88 阅读 · 0 评论 -
Oracle 复合变量 Record
一. 什么是记录(Record)? 由单行多列的标量构成的复合结构。可以看做是一种用户自定义数据类型。组成类似于多维数组。 将一个或多个标量封装成一个对象进行操作。是一种临时复合对象类型。 记录可以直接赋值。RECORD1 :=RECORD2; 记录不可以整体比较. 记录不可以整体判断为空。二. %ROWTYPE和记录(Record)? 请区别%R...原创 2010-08-11 15:06:30 · 170 阅读 · 0 评论 -
is table of
1 DECLARE 2 TYPE NumTab IS TABLE OF NUMBER(4) INDEX BY BINARY_INTEGER; 3 TYPE NameTab IS TABLE OF CHAR(15) INDEX BY BINARY_INTEGER; 4 pnums NumTab; 5 pnames NameTab; 6 ...原创 2010-08-11 15:57:42 · 108 阅读 · 0 评论 -
fetch bulk collect into 批量效率的读取游标数据
通常我们获取游标数据是用 fetch some_cursor into var1, var2 的形式,当游标中的记录数不多时不打紧。然而自 Oracle 8i 起,Oracle 为我们提供了 fetch bulk collect 来批量取游标中的数据。它能在读取游标中大量数据的时候提高效率,就像 SNMP 协议中,V2 版比 V1 版新加了 GET-BULK PDU 一样,也是用来更高效的批量取设...原创 2010-08-11 16:14:06 · 144 阅读 · 0 评论 -
ref cursor
REF CURSOR 小结利用REF CURSOR,可以在程序间传递结果集(一个程序里打开游标变量,在另外的程序里处理数据)。也可以利用REF CURSOR实现BULK SQL,提高SQL性能。REF CURSOR分两种,Strong REF CURSOR 和 Weak REF CURSOR。Strong REF CURSOR:指定retrun type,CURSOR变量的类型必须...原创 2010-08-11 16:56:51 · 97 阅读 · 0 评论 -
Pro * C 的使用(一)
一 Pro*C 程序概述: 1.什么是Pro*C程序 在ORACLE数据库管理和系统中, 有三种访问数据库的方法; (1) 用SQL*Plus, 它有SQL命令以交互的应用程序访问数据库; (2) 用第四代语言应用开发工具开发的应用程序访问数据库,这些工具有SQL*Froms,QL*Reportwriter,SQL*Menu等; (3) 利用在第三代语言内嵌入的SQL语...原创 2010-08-11 17:59:44 · 132 阅读 · 0 评论 -
Pro * C 的使用(二)
2.应用程序体 在Pro*C程序中, 能把SQL语句和C语句自由地混合书写,并能在SQL语句中使用SQL变量,嵌入式SQL语句的书写文法是: l 以关键字EXEC SQL开始 l 以C语言的语句终结符(分号)终结 SQL语句的作用主要用于同数据库打交道。C语言程序用于控制,输入,输出和数据处理等。 (1) 连接到ORACLE数据库 在对数据库存取之前,必须先把程...原创 2010-08-11 18:02:22 · 241 阅读 · 0 评论 -
Pro * C 的使用(三)
(7) 动态定义语句 SQL语句分动态定义语句和静态定义语句两种: (1) 静态定义语句:SQL语句事先编入PRO*C中,在经过预编译器编译之后形成目标程序*。BOJ,然后执行目标程序预即可。 (2) 动态定义语句:有些语句不能事先嵌入到PRO*C程序中,要根据程序运行情况,用户自己从输入设备上(如终端上)实时输入即将执行的SQL语句。 动态定义语句有: l...原创 2010-08-11 18:05:57 · 188 阅读 · 0 评论 -
connect by prior
[url]http://www.blogjava.net/freeman1984/archive/2011/05/06/349668.html[/url][url]http://www.blogjava.net/freeman1984/archive/2011/05/06/349668.html[/url]select * from branch connect by prior ...原创 2012-01-29 14:41:56 · 92 阅读 · 0 评论