Sql 创建oracle函数
下面的代码使用oracle sql*plus创建了一个带有Sql 创建oracle函数,sql,plsql,sqlplus,Sql,Plsql,Sqlplus,下面的代码使用oracle sql*plus创建了一个带有get\u age函数的对象表 Create Type C_type as Object( Cname varchar(30), dob Date, classification Number, sample_clip Blob ) / ALTER TYPE C_type ADD MEMBER FUNCTION get_age RETURN INTEGER; CREATE OR REPLACE TYPE BOD
get\u age
函数的对象表
Create Type C_type as Object(
Cname varchar(30),
dob Date,
classification Number,
sample_clip Blob
)
/
ALTER TYPE C_type
ADD MEMBER FUNCTION get_age RETURN INTEGER;
CREATE OR REPLACE TYPE BODY C_type AS
MEMBER FUNCTION get_age RETURN INTEGER IS
currenttime_age integer;
BEGIN
currenttime_age := (SYSDATE - dob)/365.25;
RETURN currenttime_age;
END get_age;
END;
/
我的意图是添加另一个返回字符的函数
- 分类为“短”(如果低于5)、“中”(在5-45之间)和“长”(超过45)
- 试试这个。我的错
DROP TYPE c_type
/
CREATE TYPE C_type AS OBJECT
(
Cname VARCHAR (30),
dob DATE,
classification NUMBER,
sample_clip BLOB,
MEMBER FUNCTION get_age
RETURN INTEGER,
MEMBER FUNCTION get_class
RETURN VARCHAR2
)
/
CREATE OR REPLACE TYPE BODY C_type
AS
MEMBER FUNCTION get_age
RETURN INTEGER
IS
currenttime_age INTEGER;
BEGIN
currenttime_age := (SYSDATE - dob) / 365.25;
RETURN currenttime_age;
END get_age;
MEMBER FUNCTION get_class
RETURN VARCHAR2
IS
result VARCHAR2 (10);
BEGIN
result :=
CASE
WHEN classification < 5 THEN 'short'
WHEN classification BETWEEN 5 AND 45 THEN 'medium'
WHEN classification > 45 THEN 'long'
END;
RETURN result;
END get_class;
END;
/
DROP类型c\u类型
/
创建类型C_类型作为对象
(
Cname VARCHAR(30岁),
dob日期,
分类号,
样本_-clip BLOB,
成员函数get_age
返回整数,
成员函数get_类
返回VARCHAR2
)
/
创建或替换类型主体C_类型
作为
成员函数get_age
返回整数
是
currenttime_年龄整数;
开始
currenttime_age:=(SYSDATE-dob)/365.25;
返回当前时间;
结束衰老;
成员函数get_类
返回VARCHAR2
是
结果VARCHAR2(10);
开始
结果:=
案例
当分类<5时,则为“短”
当分类介于5和45之间时,则为“中等”
当分类>45时,则为“长”
结束;
返回结果;
结束get_课程;
结束;
/
@LeorA,我收到这个错误警告:键入Body创建时有编译错误。请参阅我的更新。做了一些更正。哦,我的错。已在测试数据库上运行,但未重新运行架构。谢谢你抓住了!