北大青鸟oracle学习笔记23 24
子程序 命名的pl/sql块
create procedure 过程名 [参数1 in|out|in out…]
局部变量声明
执行语句
in
out
in out
过程名(参数里表); create or replace
procedure add123 as
i integer;
j integer;
begin
i:=1;
j:=2;
dbms_output.put_line(i+j);
end;
execute add123;
注意这里创建过程和执行不能放在一起,否在execute会随过程定义写入过程中,sql develop中测试如此,不知道为什么。
CREATE OR REPLACE
PROCEDURE QUERYSTUNAME
( stuid STUDENT.STU_ID%TYPE)
AS
sname student.stu_name%type;
ssex student.stu_sex%type;
BEGIN
select stu_name,stu_sex into sname,ssex from student where stu_id = stuid;
dbms_output.put_line(sname||ssex);
EXCEPTION
when No_Data_Found then
dbms_output.put_line('no data found');
when Too_Many_Rows then
dbms_output.put_line('to many rows');
when others then
dbms_output.put_line('other error');
END QUERYSTUNAME;
execute querystuname(1); 函数
create function 函数名 [参数列表]
局部变量声明
可执行语句
end;
两种访问方式
sql语句
仅接受in参数,返回值类型不能带精度。
CREATE OR REPLACE
FUNCTION GETNAME(stuid varchar)
RETURN VARCHAR AS
stuname student.stu_name%type;
BEGIN
select stu_name into stuname from student where stu_id = stuid;
RETURN stuname;
EXCEPTION
when No_Data_Found then
dbms_output.put_line('no data found');
when Too_Many_Rows then
dbms_output.put_line('to many rows');
when others then
dbms_output.put_line('other error');
END GETNAME;
declare
begin
dbms_output.put_line(getname(1));
end;
过程
函数
作为pl/sql语句执行
作为表达式一部分调用
在规格说明中不包含return子句
必须在规格说明中包含return子句
可以返回任何值
返回单值
可以包含return语句,但是不能用于返回值
必须包含return语句
相关文档:
ORACLE 10G for RHEL AS 4 安装
验证安装:检查ORACLE所需的程序是否安装均已安装(或更高版本)
compat-db-4.1.25-9.i386.rpm
compat-gcc-32-3.2.3-47.3.i386.rpm
compat-gcc-32-c++-3.2.3-47.3.i386.rpm
compat-libstdc++-33-3.2.3-47.3.i386.rpm
compat-oracle-rhel4-1.0-5.i386.rpm
gcc-3.4.3-9.EL4.i386.rpm
gli ......
oracle 表结构的修改
今天总结下关于表的修改,防止以后忘记,好记性不如烂笔头吗!!!
更改表的结构
1.编辑表的字段
修改一个列的数据类型(一般限于修改长度,修改为一个不同类型时有诸多限制):
语法:
ALTER TABLE 表名 MODIFY(列名 数据类型);
eg1:
alter table ......
外键约束保证参照完整性。外键约束限定了一个列的取值范围。一个例子就是限定州名缩写在一个有限值集合中,这个值集合是另外一个控制结构——一张父表
下面我们创建一张参照表,它提供了完整的州缩写列表,然后使用参照完整性确保学生们有正确的州缩写。第一张表是州参照表,State作为 ......
--创建对象类型
create or replace type emp_typ as object (
id number,
name varchar2(30),
sal number,
comm number,
member procedure change_comm(new_comm number),
member function get_info return varchar2
) ;
--创建对象类型构造函数定义
create or replace type body emp_typ is
member proce ......
最近做了个项目,实现对存在千万条记录的库表进行插入、查询操作。原以为对数据库的插入、查询是件很容易的事,可不知当数据达到百万甚至千万条级别的时候,这一切似乎变得相当困难。几经折腾,总算完成了任务。
1、避免使用Hibernate框架
Hibernate用起来虽然方便,但对于海量数据的操作显得力不从心。 ......