DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2013年5月20日

摘要: 在程序中定义变量、常量和参数时,则必须要为它们指定PL/SQL数据类型。在编写PL/SQL程序时,可以使用标量(Scalar)类型、复合(Composite)类型、参照(Reference)类型和LOB(Large Object)类型等四种类型。在PL/SQL中用的最多的就是标量变量,当定义标量变量时,必须要指定标题数据类型,标题数据类型一般包括:数字类型,字符类型,日期类型,布尔类型,每种类型又包含相应的子类,例如NUMBER类型包含INTEGER,POSITIVE等子类型。一、常用标量类型1.VARCHAR2(N)2.CHAR(N)3.NUMBER(P,S)4.DATE5.TIMESTA. 阅读全文
posted @ 2013-05-20 10:53 DoubleLi 阅读(8749) 评论(0) 推荐(0)

摘要: 案例: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 raise_application_error(-20013,'销售员工资不能降低!'); END IF;END;运行情况:SQL> update emp set sal=sal-1000 阅读全文
posted @ 2013-05-20 10:50 DoubleLi 阅读(4769) 评论(0) 推荐(0)

摘要: oracle循环语句loop 和while 用法a. loop...end loop(至少执行一次)请编写一个过程,可以输入用户名,并循环添加10个用户到 users表中,用户编号从1开始增加。create or replace procedure sp_pro6(spName varchar2) is v_num number:=1;beginloopinsert into users values(v_num,spName);--判断是否要退出循环exit when v_num=10;v_num:=v_num+1;end loop;end; b.while 循环请编写一个过程,可以输... 阅读全文
posted @ 2013-05-20 10:46 DoubleLi 阅读(1698) 评论(0) 推荐(0)

摘要: oracle条件分支用法a.if...thenb.if...then... elsec.if...then... elsif.... else 实例 1问题:编写一个过程,可以输入一个雇员名,如果该雇员的工资低于2000,就给该员工工资增加10%。 create or replace procedure sp_pro6(spName varchar2) is v_sal emp_copy.sal%type;beginselect sal into v_sal from emp_copy where ename=spName;if v_sal<2000 thenupdateemp_copy 阅读全文
posted @ 2013-05-20 10:43 DoubleLi 阅读(13865) 评论(0) 推荐(0)

摘要: 1. CASE WHEN 表达式有两种形式--简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASEWHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 2. CASE WHEN 在语句中不同位置的用法2.1 SELECT CASE WHEN 用法SELEC 阅读全文
posted @ 2013-05-20 10:36 DoubleLi 阅读(727) 评论(0) 推荐(0)

摘要: 实例演示: (1)查询表users中的数据。 select u.id,u.realname,U.SEX from users u; 查询结果如下 ID REALNAME SEX 1 10082 松XX 2 10084 林XX 1 3 10087 西XX 4 10100 胡XX 5 10102 龙XX 1 ...... (2)上表结果中的"sex"是用代码表示的,希望将代码用中文表示。可在语句中使用CASE语句。select u.id,u.realname,U.SEX, ( case u.sex when 1 then '男' when 2 then ' 阅读全文
posted @ 2013-05-20 10:32 DoubleLi 阅读(34529) 评论(1) 推荐(0)

摘要: 最近总结了一下oracle主键的设置方法,贴到这保存一下吧。有两种方法可以设置主键,一种是自增长主键,另一种就是生成唯一序列。 一、自增长主键 --首先建一个表TEST?create table TEST ( NID int PRIMARY KEY, test1 varchar2(20), test2 varchar2(20), test3 varchar2(20), test4 varchar2(20), test5 varchar2(20) )-- 再建一个序列SEQ_TEST ?create sequence SEQ_TEST minvalue 1 --最小值 nomaxv... 阅读全文
posted @ 2013-05-20 10:09 DoubleLi 阅读(1688) 评论(0) 推荐(0)

摘要: 如何使用Oracle序列:Oracle序列(sequence)是一种数据库项,能够生成一个整数序列。通常用于填充数字类型的主键列。 1、创建序列: CREATE SEQUENCE sequence_name [START WITH start_num] [INCREMENT BY increment_num] [{MAXVALUE maximum_num|NOMAXVALUE}] [{MINVALUE minimum_num|NOMINVALUE}] [{CYCLE|NOCYCLE}] [{CACHE cache_num|NOCACHE}] [{ORDER|NOORDER}] 其中: sta. 阅读全文
posted @ 2013-05-20 09:53 DoubleLi 阅读(411) 评论(0) 推荐(0)

摘要: 导读]dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情。 dual是一个虚拟表,用来构成select的语法规则,oracle保证dual里面永远只有一条记录。我们可以用它来做很多事情,如下: 1、查看当前用户,可以在 SQL Plus中执行下面语句 select user from dual; 2、用来调用系统函数 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;--获得当前系统时间 select SYS_CONTEXT('US 阅读全文
posted @ 2013-05-20 09:52 DoubleLi 阅读(240) 评论(0) 推荐(0)