数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
pl/sql 常用脚本

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

--触发器

CREATE OR REPLACE TRIGGER GBJ.B_INSERT_TEST
BEFORE INSERT OR UPDATE
OF NCOLUMN
ON GBJ.TEST_TABLE
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
if :new.ncolumn=0 then
   raise_application_error(-20180,'只能插入正数!');
end if;
    
END B_INSERT_TEST;


--存储过程

CREATE OR REPLACE procedure Proce_Insert IS

   v_Num1  NUMBER :=3;
   v_Num2  NUMBER :=4;
   v_Str1  varchar2(30):='fasfasf';
   v_Str2  varchar2(30):='fasdfasdfaf';
   v_OutputStr  varchar2(30);

begin
    insert into test_table(ncolumn,vcolumn)values(v_Num1,v_Str1);
 insert into test_table(ncolumn,vcolumn)values(v_Num2,v_Str2);
 commit;
 select vcolumn into v_OutputStr  from test_table  where ncolumn=v_Num1;
 dbms_output.put_line(v_OutputStr);
 select vcolumn into v_OutputStr  from test_table  where ncolumn=v_Num1;
 dbms_output.put_line(v_OutputStr);
end Proce_Insert;
/

--创建过程

SQL> set serveroutput on;  --设置输出结果
declare

   v_Num1  NUMBER :=3;
   v_Num2  NUMBER :=4;
   v_Str1  varchar2(30):='fasfasf';
   v_Str2  varchar2(30):='fasdfasdfaf';
   v_OutputStr  varchar2(30);

begin
    insert into test_table(ncolumn,vcolumn)values(v_Num1,v_Str1);
 insert into test_table(ncolumn,vcolumn)values(v_Num2,v_Str2);
 commit;
 select vcolumn into v_OutputStr  from test_table  where ncolumn=v_Num1;
 dbms_output.put_line(v_OutputStr);
 select vcolumn into v_OutputStr  from test_table  where ncolumn=v_Num1;
 dbms_output.put_line(v_OutputStr);
end ;
/

--pl/sql 程序块

declare

   v_ncolumn   NUMBER :=6;
   v_vncolumn  varchar2(30);

begin
 select vcolumn into v_vncolumn  from test_table  where ncolumn=v_ncolumn;
 dbms_output.put_line('The Message ''s  '  ||v_vncolumn );
 
exception
   when NO_DATA_FOUND  THEN
   dbms_output.put_line('ûÓÐÕÒµ½Æ¥ÅäµÄÊý¾Ý!');
 
end ;
/

--定义记录类型

type  T_dzrecord  is record
(
  v_vname   varchar2(20);  --姓氏字段
  v_vcode   varchar2(20);  --代码字段
  v_vsex    number(2);     --性别字段
  
);

--定义记录类型变量

v_dzinfo  T_dzrecord;

--记录类型(在过程中的)使用

select  v_vname,v_vcode, v_vsex  into   v_dzinfo  from   **_table;   --方法1
select  * into   v_dzinfo  from   **_table; --方法2

--定义和字段类型相同变量的另一种方法

declare

variable_name    table_name.column%TYPE;

--记录中应用type
type  T_dzrecord  is record
(
  v_vname   table_name.column%TYPE;  --姓氏字段
  v_vcode   table_name.column%TYPE;  --代码字段
  v_vsex    table_name.column%TYPE;  --性别字段
  
);

--对于表中拥有多个数据列,定义记录变量时可以用下面的简单方法

declare

variable_name    table_name%ROWTYPE;

--使用

variable_name.v_vsex:=1;




相关文章

相关软件