易截截图软件、单文件、免安装、纯绿色、仅160KB

Oracle 系列:PL/SQL表

 Oracle 系列: PL/SQL表
一,什么是PL/SQL表?
 首先PL/SQL表和记录(Record)一样,都是复合数据类型。可以看做是一种用户自定义数据类型。
 PL/SQL表由多列单行的标量构成的临时索引表对象。组成类似于一维数组。
 区别和联系记录(Record)的单行多列和物理存储数据的表。
 Record + PL/SQL表可以进行数据的多行多列存储。
 生命周期在程序块内。
二,PL/SQL表的组成结构
 PL/SQL表只有两列,其中第一列为索引列为Integer类型索引列,9i后可以支持字符索引。第二列为用户自定义列,声明用户可用列类型.
 通过索引列中的索引值来操作PL/SQL表中对应的用户自定义列。类似于键值对。
 确保索引值的唯一性。如果索引值重复不会报错,会覆盖前面的值。
三,如何创建和使用PL/SQL表?
 ①声明PL/SQL表类型对象
  语法:
   TYPE  PL/SQL表名  IS TABLE  OF 可用列类型  [NOT NULL]
    INDEX BY BINARY_INTEGER;
 
  可用列类型可以为Oracle的数据类类型以及用户自定义类型;
 
  属性方法:
   count --返回pl/sql表的总行数;
   delect --删除pl/sql表的所有内容;
   delect(行数) --删除pl/sql表的指定的行;
   delct(开始行,结束行) --删除pl/sql表的多行;
   first --返回表的第一个INDEX;
   next(行数) --这个行数的下一条的INDEX;
   last --返回表的最后一个INDEX;
 
 ②声明PL/SQL表类型变量:
  语法:
   PL/SQL表类型变量名   PL/SQL表类型;
 
 ③数据填充和访问
  语法:
   PL/SQL表类型变量名(索引列值) := 填充声明类型值;
  
   PL/SQL表类型变量名.属性方法名;
 
 例子:
 Declare
  Type  MyTabType  Is  Table  Of  VarChar2(10)  Index By  Binary_Integer;
  MyTab  MyTabType;
  vN  Number(4);
 Begin
  MyTab(1) :=  'A';
  MyTab(2) :=  'B';
  MyTab(3) :=  'C'; --覆盖前面索引值为3对应的列值B
  vN := MyTab.First;
  DBMS_OUTPUT.PUT_LINE(


相关文档:

[收拢] 用sqlite 执行标准 sql 语法

http://www.umgr.com/blog/PostView.aspx?bpId=36294
 1. 执行sql语句
int sqlite3_exec(sqlite3*, const char *sql, sqlite3_callbacksql 语法
, void *,  char **errmsg );
这就是执行一条 sql 语句的函数。
第1个参数不再说了,是前面open函数得到的指针。说了是关键数据结构。
第2个参数const char ......

oracle与sqlserver执行count(*)返回的结果兼容

由于以前都是在sqlserver 2005处理,现在客户要求oracle数据库服务器,
最初的代码为:
allRecordSize = (Integer) rs1.getObject(1);    //Integer allRecordSize=0;
当执行的时候报:BigDecimal无法转化为Integer类型
为了兼容两者修改后的代码为:
  Object o = rs1.getObject(1);
 &nbs ......

Oracle 10g Statistic数据统计


Oracle 10g statistic数据统计,Oracle会根据这些统计信息来决定是走RBO(Rule-BasedOptimization),还是走CBO(Cost-BasedOptimization),会去选择哪种执行计划更划算,影响是否走相关的索引等.如果是CBO的话,它依靠准确的(或者说比较准确的)统计信息来产生优化的执行路径,如果没有做过统计,CBO也就没有做cost评估的依据 ......

oracle 创建用户


oracle10g创建用户
Oracle10g 的创建用户名
1、   linux 下 oracle 的启动
以 oracle 身份登录  
启动    lsnrctl start
登录    sqplus /nolog
连接数据库    connect  /as   sysdba
启动数据库    startup
关闭数据库    s ......

Oracle 语句级触发器

先构造一个表:
create table emp2(
id number(2),
name varchar(10),
currdate date,
action varchar2(1)
)
创建触发器:
create or replace trigger d_i_u_emp2
after insert or update or delete on mysort
begin
if inserting then
insert into emp2 values (12,'dog',sysdate,'i');
elsif deleting then ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号