gpt4 book ai didi

oracle - oracle 11g中调用成员函数

转载 作者:行者123 更新时间:2023-12-04 00:48:57 25 4
gpt4 key购买 nike

我有一个叫做预算的类型定义为

create type budget as object ( 
year number,
amount number,
member function left_over (year in number) return number
)

正文:

create type body budget as
member function left_over(year in number) return number is
begin
return amount;
end left_over;
end;

还有一个对象表

create table budget_table of budget;

如何使用成员函数返回金额?像这样的东西:

select b.left_over(2010) from budget_table b;

谢谢

最佳答案

您不需要方法的参数:

SQL> create or replace type budget as object (
2 year number,
3 amount number,
4 member function left_over return number
5 )
6 /

Type created.

SQL> create or replace type body budget as
2 member function left_over return number is
3 begin
4 return amount;
5 end left_over;
6 end;
7 /

Type body created.

SQL> create table budget_table of budget;

Table created.

SQL> insert into budget_table values (budget(2010,99));

1 row created.

SQL> commit;

Commit complete.

SQL> select b.left_over() from budget_table b;

B.LEFT_OVER()
-------------
99

(我认为这是一个学术练习,因为在真实的业务数据库中创建这样的表是没有意义的!)

限制特定年份的预算:

SQL> insert into budget_table values (budget(2010,99));

1 row created.
SQL> select b.left_over() from budget_table b;

B.LEFT_OVER()
-------------
88
99

SQL> select b.left_over() from budget_table b
2 where b.year = 2010;

B.LEFT_OVER()
-------------
99

关于oracle - oracle 11g中调用成员函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2290668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com