
Oracle
lishushan
这个作者很懒,什么都没留下…
展开
-
oracle中怎样查询数据表的哪个字段是主键
selecttable_name,constraint_name,constraint_type fromuser_constraints whereconstraint_type='P' andtable_name='YOURTABLENAME'; 第4楼 selectcolumn_name fromuser_constraintsc,user_cons_columnscol where...原创 2011-03-20 18:17:41 · 439 阅读 · 0 评论 -
如何在Oracle中建表格时就指定主键和外键
创建表的语法-创建表格语法:create table 表名( 字段名1 字段类型(长度) 是否为空, 字段名2 字段类型 是否为空);-增加主键alter table 表名 add constraint 主键名 primary key (字段名1);-增加外键:alter table 表名 add constraint 外键名 foreign key (字...原创 2010-06-30 23:42:33 · 108 阅读 · 0 评论 -
Oracle触发器中when语句的用法
案例:scott.emp表的销售员工资只能增加,不能减少代码:CREATE OR REPLACE TRIGGER tr_emp_updBEFORE UPDATE OF salON empFOR EACH ROW--当更新销售员时才触发WHEN (OLD.job='SALESMAN')DECLAREBEGIN IF(:NEW.sal<:OLD.sal) THEN rais...原创 2010-06-30 23:41:07 · 337 阅读 · 0 评论 -
通过银行转账业务体会JAVA与存储过程不同实现方式
任务:帐户表(帐户号,姓名,余额,锁定)。实现帐号1向帐号2转账若干元。业务要求1、两个帐户要存在(略)2、转账方最低余额为10元3、如果任何一方被锁定(u_lock=1),则不能转4、要保证交易完整性(不能一个成功,一个失败)create table T_ACCOUNT( U_ID NUMBER(5) primary key, U_NAM...原创 2010-06-30 23:40:11 · 144 阅读 · 0 评论 -
select into语句容易报错的处理方法
说明:使用select...into语句时,如果查询返回的数据不是1行,就会报no_data_found或者to_many_rows两种异常。 案例:根据部门号,查询部门名称。处理方法:巧用聚合函数处理DECLARE v_dname dept.dname%TYPE;BEGIN SELECT MAX(dept.dname) INTO v_dname FROM ...原创 2010-06-30 23:37:13 · 375 阅读 · 0 评论 -
Oracle存储过程及JDBC调用大全
Oracle存储过程及JDBC调用大全(原创)-----------------无返回值示例------------------------ 存储过程: ·添加学生,如果班级不存在,则先添加班级信息,再添加学生。create or replace procedure sp_add_stu( p_stu_id t_stu.s_id%type, --参数类型定义为字段...原创 2010-06-30 23:35:21 · 90 阅读 · 0 评论 -
Oracle存储过程学习
存储过程创建语法: create or replace procedure 存储过程名(param1 in type,param2 out type) as 变量1 类型(值范围);变量2 类型(值范围);Begin Select count(*) into 变量1 from 表A where列名=param1; If (判断条件) then...原创 2010-06-12 19:32:52 · 87 阅读 · 0 评论 -
not exists 比 not in效率高
数据库:oracle数据量:52000条记录用not exists比not in执行的效率要高的多 select * from quyu_t a where a.version='256' and not exists(select 'x' from quyu_t_his b where a.username=b.username); -------用not in效率低...2010-02-24 17:07:45 · 362 阅读 · 0 评论 -
Oracle学习笔记
1、set linesize 100; 设置长度 2、set pagesize 30; 设置每页显示数目 3、em a.sql 打开记事本 4、@ a 执行文件a中的代码,可指定文件的路径 @d:a.txt 5、conn 用户名/密码 根据用户名和密码连接数据库 如果连接超级管理员(sys) 则应加上as sysdba; 6、show user; 显示当前连接的用户 7、selec...原创 2010-07-28 00:30:19 · 95 阅读 · 0 评论 -
《oracle 9i从入门到精通读书笔记2》
第二章:PL/SQL基础 2.1 PL/SQL程序结构 2.1.1 PL/SQL块的类型 所有的PL/SQL程序都是以块作为基本单位,以及都是由块组成的。 这些块可以是按顺序出现的,也可以是嵌套的 块可以根据其带名称和不带名称以及在数据库中的存储方式分为以下类型: 匿名块:只能执行一次,不能存储在数据库中 带名块:一种带标签的匿名块 子程序:可以存储在数据库中的过程,函数和包,可以多次执行...原创 2010-07-26 19:51:32 · 96 阅读 · 0 评论 -
《Oracle9i PL/SQL 从入门到精通读书笔记1》
Oracle9i PL/SQL 从入门到精通学习笔记 第一章:PL/SQL简介 1.1 什么是PL/SQL PL/SQL是一种比较复杂的程序设计语言,用于从各种环境访问oracle数据库。现在PL/SQL和服务器集成在一起。这样可以快速而有效的处理PL/SQL代码。 SQL是一种第四代语言,这意味着它会描述应该做什么,但不会描述如何去做,所以相对第三代语言来说,SQL非常简单,它把用户与实际的数据...原创 2010-07-26 19:51:01 · 214 阅读 · 0 评论 -
oracle 的to_char、to_number、to_date用法
TO_CHAR 是把日期或数字转换为字符串 TO_DATE 是把字符串转换为数据库中得日期类型转换函数 TO_NUMBER 将字符转化为数字 TO_CHAR 使用TO_CHAR函数处理数字 TO_CHAR(number, '格式') TO_CHAR(salary,’$99,999.99’); 使用TO_CHAR函数处理日期 TO_CHAR(date,’格式’); TO_NUMBER 使用...原创 2010-01-15 11:20:40 · 98 阅读 · 0 评论 -
常用oracle 系统表
下面全面是对Oracle系统表的一些介绍: 数据字典dict总是属于Oracle用户sys的。 1、用户: select username from dba_users; 改口令 alter user spgroup identified by spgtest; 2、表空间: select * from dba_data_files; select * from...原创 2010-01-15 11:20:02 · 84 阅读 · 0 评论 -
Oracle基础练习(三)
1、select 5/2,null*5 from dual,得到的两个结果分别是:2.5、null因为:null值不能运算,不能比较;dual的名字叫虚表或哑表,作用是:求表达式的值。2、select nvl(入学日期,sysdate) from 学生表:此句的功能是:如果入学日期为空,则返回系统日期。其中nvl所起的作用是:转换null值。 3、select decode(部门,10,'后勤部...原创 2010-06-30 23:45:18 · 101 阅读 · 0 评论 -
Oracle常见问题处理
一、Oracle的安装目录不能是中文,否则安装不成功。解决:Oracle目标目录改为英文。二、安装时计算机机器名不能是中文,否则监听器不能启动。解决:查看D:\oracle\ora90\network\ADMIN\listener.ora,里面的(ADDRESS = (PROTOCOL = TCP)(HOST = ??)(PORT = 1521))部分,??改为0.0.0.0就OK了。三、...原创 2010-06-30 23:46:04 · 95 阅读 · 0 评论 -
ORACLE树查询,startwithconnectbyprior
[url=#author]周 登朋[/url] ([url=mailto:zhoudengpeng@yahoo.com.cn?subject=%E5%AE%9E%E6%88%98%20Jetty]zhoudengpeng@yahoo.com.cn[/url]), 研究生, 上海交通大学2008 年 4 月 30 日Jetty 是一个用 Java 实现、开源、基于标准的,并且...原创 2011-03-20 18:12:27 · 132 阅读 · 0 评论 -
java.sql.SQLException: ORA-00933: SQL command not properly ended
java.sql.SQLException: ORA-00933: SQL command not properly ended at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111) at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.ja...原创 2010-10-08 19:16:25 · 385 阅读 · 0 评论 -
Oracle数据显示--横表转纵表
1.建表-- Create table create table test ( dm1 char(3), dm2 char(3), mc1 nvarchar2(20), val nvarchar2(20) ) 2.填入数据如下:DM1 DM2 MC1 VAL 101 1 c1 100 101 1 c2 80 101 1 c3 40 101 2 c...原创 2010-10-06 11:42:26 · 163 阅读 · 0 评论 -
Oracle域用户安装
问题:如果在域中安装Oracle 10G,在DataBase Configuration Assisant安装的时候,会报一个错误,提示:ORA-24324:未初始化服务句柄ORA-24323:不允许此值ORA-28547:连接服务器失败,可能是Oracle Net管理错误这是因为,用域用户登录主机时,Oracle会把主机在域当中的名字当作Host名。解决办法:1.将sql...原创 2010-07-05 19:43:09 · 411 阅读 · 0 评论 -
存储过程无法代替触发器的特殊情况
在这里先解释一下推崇用存储过程代替触发器的原因,当然这里先要说明一下此概念受教于ITPUB论坛的newkid版主的经验。直接进入正题,绝大多数的由触发器提供的功能都可以用存储过程都能实现,而触发器是“隐式”执行,存储过程是“显式”执行,也就是说,当你对一个表进行操作的时候,存储过程出现于你的程序代码中,出现问题可以被发觉,而触发器是自动执行,如果它的出现了问题,你无法在代码中找到它,因而会给造...原创 2010-07-03 13:30:23 · 228 阅读 · 0 评论 -
informix的字符串类型详解(含与oracle的对比)
lvarchar在9.4版本之后才可以用带指定长度的方式,如lvarchar(3000),不带长度则默认是2048字节,最大长度是32,739字节。所以对于9.4之前的版本,不能用带长度的表达式,数据库会报语法错误。另,据说informix没有补丁的说法,实际就是升级到高版本,不知道这样的说法是否正确。 在informix中有如下几种对字符串操作的类型:char,varchar,nch...原创 2010-07-03 13:29:46 · 1417 阅读 · 0 评论 -
oracle的字符串类型详解
整理一下对于char,character,varchar,varchar2,nchar,nvarchar2,long,long raw及LOB类型之间比较一、类型概念char: 定长的字符串类型,当存放的数据没有达到设定的最大限度时,会以空格补齐(测试方法及结果详见后面的"四.类型测试",以下同)。character: 经过测试与char基本相同,由于我个人的测试中...原创 2010-07-03 13:29:02 · 538 阅读 · 0 评论 -
Oracle学习笔记
1、set linesize 100; 设置长度 2、set pagesize 30; 设置每页显示数目 3、em a.sql 打开记事本 4、@ a 执行文件a中的代码,可指定文件的路径 @d:a.txt 5、conn 用户名/密码 根据用户名和密码连接数据库 如果连接超级管理员(sys) 则应加上as sysdba; 6、show user; 显示当前连接的用户 7、selec...原创 2010-07-01 20:29:28 · 84 阅读 · 0 评论 -
Oracle数据库函数(单行函数)
Oracle数据库函数(单行函数) Oracle中的函数和C中的函数差不多,也是有函数名,参数表,和返回值类型组成的,单行函数,是针对每条记录都有一个结果。单行函数可以出现在select 后面,也可以出现在where子句中。 需要处理现实的结果时,就把函数写在select后面,用于条件过滤时,就把函数用在where子句中。 1,字符函数(varchar) 字符...原创 2010-07-01 20:28:48 · 95 阅读 · 0 评论 -
oracle日期函数集锦
一、 常用日期数据格式1.Y或YY或YYY 年的最后一位,两位或三位 SQL> Select to_char(sysdate,'Y') from dual;TO_CHAR(SYSDATE,'Y')--------------------7SQL> Select to_char(sysdate,'YY') from dual;TO_CHAR(SYSDATE,'YY')...原创 2010-07-01 20:26:32 · 81 阅读 · 0 评论 -
Oracle时间加减
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --...原创 2010-07-01 20:23:48 · 172 阅读 · 0 评论 -
Oracle中数值的计算
运算符 含义· +(加) 加法· ||(加) 字符串相加· -(减) 减法· *(乘) 乘法· /(除) 除法· mod(模)返回一个除法的整数余数 例如,12 % 5 = 2,这是因为 12 除以 5,余数为 2示例:select5+6,5+nullfrom dualselect5-6from dualselect5*6from du...原创 2010-06-30 23:46:51 · 192 阅读 · 0 评论 -
命令行启动oracle 步骤
一、oracle启动: ######################################################### 检查监听器状态: ######################################################### E:\>lsnrctl status LSNRCTL for 32-bit Windows: Version 9.2.0...原创 2010-01-15 11:18:47 · 136 阅读 · 0 评论 -
Oracle与SQL Server的互连
不同数据库平台的互连一般称之为数据库的异构服务,现在各大数据库之间都可以实现这样的异构互连,只是各厂商的具体实现技术不一样,如:在SQL SERVER里面叫做LINKED SERVER,通过ODBC实现与其它数据库的互联。 而ORACLE实现异构服务的技术叫做透明网关(Transparent Gateway),当然之前ORACLE还采用过通用连接技术。目前ORACLE利用透明网关可...原创 2010-01-12 21:44:21 · 114 阅读 · 0 评论 -
在pl/sql中使用exp/imp工具实现oracle数据导出/导入
Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,DOS中可以执行时由于 在oracle 8i 中 ...原创 2010-01-12 21:41:00 · 144 阅读 · 0 评论 -
Oracle分页查询语句(七)
在文章的最后看一下ORDER BY STOPKEY和ORDER BY在翻页查询的最后几页的性能差异:SQL> CREATE TABLE T AS SELECT A.* FROM DBA_OBJECTS A, DBA_USERS B, TAB;表已创建。SQL> SELECT COUNT(*) FROM T;COUNT(*)----------458064SQL>...原创 2010-01-12 00:11:03 · 81 阅读 · 0 评论 -
Oracle分页查询语句(六)
这篇文章通过例子说明分页查询使用的NESTED LOOP操作,在分页查询翻到最后几页时的性能问题:SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS;表已创建。SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE;表已创建。SQL> ALTER TABLE T ADD CON...原创 2010-01-12 00:10:37 · 79 阅读 · 0 评论 -
Oracle分页查询语句(五)
前面的各种例子已经说明了分页查询语句的标准写法所带来的性能提升。这里简单总结一下,并简单的说明分页查询语句在何时无法带来性能提升。分页查询语句之所以可以很快的返回结果,是因为它的目标是最快的返回第一条结果。如果每页有20 条记录,目前翻到第5页,那么只需要返回前100条记录都可以满足查询的要求了,也许还有几万条记录也符合查询的条件,但是由于分页的限制,在当前的查询 中可以忽略这些数据,而只...原创 2010-01-12 00:10:02 · 85 阅读 · 0 评论 -
Oracle分页查询语句(四)
最后的例子说明内部循环包含排序的情况:SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS;表已创建。SQL> CREATE INDEX IND_T_OBJECT_NAME ON T (OBJECT_NAME);索引已创建。SQL> ALTER TABLE T MODIFY OBJECT_NAME NOT NULL;...原创 2010-01-12 00:09:27 · 70 阅读 · 0 评论 -
Oracle分页查询语句(三)
继续看查询的第二种情况,包含表连接的情况:SQL> CREATE TABLE T AS SELECT * FROM DBA_USERS;表已创建。SQL> CREATE TABLE T1 AS SELECT * FROM DBA_SOURCE;表已创建。SQL> ALTER TABLE T ADD CONSTRAINT PK_T PRIMARY KEY (US...原创 2010-01-12 00:08:42 · 67 阅读 · 0 评论 -
Oracle分页查询语句(二)
这篇文章用几个例子来说明分页查询的效率。首先构造一个比较大的表作为测试表:SQL> CREATE TABLE T AS SELECT * FROM DBA_OBJECTS, DBA_SEQUENCES;表已创建。SQL> SELECT COUNT(*) FROM T;COUNT(*)----------457992首先比较两种分页方法的区别:SQL> SE...原创 2010-01-12 00:08:01 · 122 阅读 · 0 评论 -
Oracle分页查询语句(一)
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用。分页查询格式:SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40)WHERE RN >= 21其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询...原创 2010-01-12 00:07:25 · 102 阅读 · 0 评论 -
SQL*PLUS常用命令列表
假设当前执行命令为:select * from tab;(a)ppend 添加文本到缓冲区当前行尾a order by tname 结果:select * from tab order by tname;(注:a后面跟2个空格)(c)hange/old/new 在当前行用新的文本替换旧的文本 c/*/tname 结果:select tname from tab;(c)hange/text从当前...原创 2010-01-12 00:06:37 · 76 阅读 · 0 评论 -
创建一个Oracle 数据库
由于Oracle是大型的关系型数据库系统(RDBMS),所以在创建数据库时需要设置许多环境参数,有时候这些设置环境的准备工作会让人觉得很繁琐,问题出得也很多,但也正是Oracle公司给出了让用户能灵活的设置数据库环境参数的做法,使得Oracle变得很灵活和高效,能适应不同档次的机器、操作系统。(这里只给出了最基本的步骤,因为在实际中有许多细 计划和组织创建数据库是DBA应该关心的。 创建...原创 2010-01-12 00:06:03 · 115 阅读 · 0 评论 -
oracle 自增长字段——序列
在oracle中sequence就是所谓的序列号,每次取的时候它会自动增加,一般用在需要按序列号排序的地方。 1、CreateSequence 你首先要有CREATESEQUENCE或者CREATEANYSEQUENCE权限, CREATESEQUENCEemp_sequence INCREMENTBY1--每次加几个 ...原创 2010-01-09 23:43:27 · 118 阅读 · 0 评论