ORACLE PL/SQL 记录(Record)学习笔记(一)
在PL/SQL程序设计中,有三种定义记录类型的方法:一种是使用%ROWTYPE属性;另一种是在PL/SQL程序的声明部分显示定义记录类型;最后一种方法是将记录类型定义为数据库结构或对象类型。
我先简单的介绍一个下面要用到的表的结构(黑体标明的字段为主键):
INDIVIDUALS表
INDIVIDUAL ID
FIRST NAME
MIDDLE_INITIAL
LAST_NAME
ADDRESSES表
ADDRESS ID
INDIVIDUAL ID
STREET_ADDRESS1
STREET_ADDRESS1
STREET_ADDRESS1
CITY
STATE
POSTAL_CODE
COUNTRY_CODE
TELEPHONES表
TELEPHONE ID
INDIVIDUAL ID
ADDRESS_ID
TELEPHONE_TYPE
TELEPHONE_NUMBER
一、记录类型的定义和使用
1、使用%ROWTYPE属性隐式定义记录类型
可以使用%ROWTYPE属性引用PL/SQL游标、数据库中的表、对象或视图,%ROWTYPE属性继承了这些对象的行定义。在用%ROWTYPE属性定义的行中,所有字段都是根据与之相关的表列的数据类型隐式定义的。字段名称也就是表中的列名。
通过使用点语法隔开记录变量名称和记录的字段名,我们就可以分别访问记录的各个字段。
如下例所示:
DECLARE
-- Define a variable with an implicit record type.
individual individuals%ROWTYPE;
BEGIN
-- Initialize the field values for the record.
individual.individual_id := 1;
individual.first_name := 'John';
individual.middle_initial := 'D';
individual.last_name := 'Rockefeller';
-- Insert the values into the target object.
INSERT
INTO individuals
VALUES
(individual.individual_id
,individual.first_name
,individual.middle_initial
,individual.last_name);
-- Commit the record.
COMMIT;
END;
/
2、显式地将记录类型定义为PL/SQL结构
也可以在PL/SQL程序的声明部分,通过定义一个记录类型的方式,显式的创建一个记录类型。可以显式地键入变量名称来定义记录类型的变量,也可以使用%TYPE属性定义变量。
如下例所示:
DECLARE
-- Define a record type.
TYPE individual_record IS RECORD
(individual_id INTEGER
,first_name VARCHAR2(30 CHAR)
,middle_initial individuals.middle_initial%TYPE
,last_name VARCHAR2(30 CHAR));
-- Define a variable of the record type.
indi
相关文档:
关于存储过程和函数的定义网上一搜一大把,这里就不特殊介绍了,这里就只对我自己写的几种格式的存储过程和函数做一些总结,希望对大家有点帮助。
一:存储过程
1:最普通的一种。(传参,查询游标,执行,循环游标做插入动作)。
create or replace procedure zy2040_sirole(rolekey in varchar2) ......
select decode('X','Q','变量1','变量2') from dual
select sysdate,to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual
select to_date(’2003-10-17 21:15:37’,’yyyy-mm-dd hh24:mi:ss’) from dual
日期格式参数 含义说明
D 一周中的星期几
DAY 天的名 ......
oracle 逻辑备份命令EXP/IMP参数参考手册
帮助命令:exp help=y
Export: Release 10.2.0.1.0 - Production on Thu Jul 20 10:39:50 2006
Copyright (c) 1982, 2005, Oracle. All rights reserved.
You can let Export prompt you for parameters by entering the EXP
command followed b ......
界面开发人员报有很多重复数据在用户权限表。然后我删除了表数据delete 方式,修改了对应的存储过程使之不重复!
后来发现 重新拉回的数据没权限。 只好闪回到今天凌晨了!
SQL> ALTER TABLE BA.T_POWER_ADMIN ENABLE ROW MOVEMENT;
Table altered
SQL> flashback table ba.t_Power_Admin to tim ......
oracle% sqlplus /nolog
SQL> conn / as sysdba
数据库的物理文件
数据文件
select file_name from dba_data_files;
控制文件
select name from v$controlfile;
日志文件
select member from v$logfile;
---------------------------------------------------------
......