Oracle 操作函数
函数:
1.使用Create Function 语句创建
2.语
法:
Create or replace Function 函数名[参数列表]
Return 数据类型
IS|AS
局部变量
Begin
可执行语句
end;
3.访问函数
-用两种方式进行访问
使用PL/SQL块
使用SQL语句
-仅接受In参数
示例:
create or replace function
GetName(sNo varchar2)
return varchar Is --不能指定精度
name
varchar(12);
Begin
select ename into name from emp
where empno=sNo;
return name;
Exception
when
Too_many_rows then
DBMS_output.put_line('返回值多余一条');
when
Others then
DBMS_output.put_line('在执行函数GetName时出现意外错误!');
End;
/
调用
declare
name varchar(12);
begin
name:=getname('7369');
DBMS_output.put_line('结果为:'||name);
end;
/
数据字典:user_source
编译时出错的数据字
典:user_errors;
或 show errors;
select * from user_source from where
name='GETNAME'; --注意大写
过程与函数
过
程 函数
作为
PL/SQL语句执行 &nb
相关文档:
程序包
包主体/规范名字一样
包主体/规范中的对应参数必须类型及名字一样
只能使用强类型的REF游标
创建程序包规范
create or replace package my_pack
is
procedure find_emp_proc(eno emp.empno%type);
function fin ......
ORACLE数据库对象
——同义词、序列、视图
同义词:同义词是现有对象的别名
简化SQL语句
隐藏对象的名称和所有者
提供对对象的公共访问
同义词分为私有同义词和公有同义词
私有同义词只能在其模式内访问,且不能与当前模式的对象同名。
公有同义词可被所有的数据库用户访问。
以 SYS 用 ......
我列出我全部的做法:
table a 有id1, str1, str2, str3
开始的pk是id1, str1, str2
希望改成id1, str1, str3
--问题
小弟先有如下问题:
一个表原来的PK是 id1+str1+str2 列
先修改成id1+str1+str3列
而这三列现在当前数据库的数据有重复的情况, 小弟现在用sql:
ALTER table a a ......
从概念到示例—Oracle创建程序包
一、程序包的相关知识
1.定义与说明
a. 相关对象的封装
b. 程序包的各部分
- 程序包规格说明
声明子程序
- 程序包主体
......