create table AM_TEST
(
id NUMBER(10) not null,
name VARCHAR2(20),
email VARCHAR2(20),
remark VARCHAR2(20),
age NUMBER
)
comment on table AM_TEST
is '测试表';
comment on column AM_TEST.id
is '唯一标识';
comment on column AM_TEST.name
is '姓名';
comment on column AM_TEST.email
is '邮箱';
comment on column AM_TEST.remark
is '备注';
comment on column AM_TEST.age
is '年龄';
commit;
insert into AM_TEST (id, name, email, remark, age)
values (1, 'a', null, null, 1);
insert into AM_TEST (id, name, email, remark, age)
values (2, 'b', null, null, 2);
insert into AM_TEST (id, name, email, remark, age)
values (3, 'c', null, null, 3);
insert into AM_TEST (id, name, email, remark, age)
values (4, 'd', null, null, 4);
insert into AM_TEST (id, name, email, remark, age)
values (5, 'e', null, null, 5);
commit;
create or replace package p_view_param is
function set_param(num number) return number;
function get_param return number;
end p_view_param;
create or replace package body p_view_param is
param_value number;
function set_param(num number) return number is
begin
param_value := num;
return num;
end;
function get_param return number is
begin
return param_value;
end;
end p_view_param;
create or replace view p_view_user as
select t.id, t.age*p_view_param.get_param() d_age from am_test t where id = p_view_param.get_param();
select * from P_VIEW_USER t where p_view_param.set_param(2) = 2;