问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于oracle 的一些问题?

发布网友 发布时间:2022-04-28 19:47

我来回答

3个回答

热心网友 时间:2022-04-08 05:48

看下函数的定义说明:

3.3.13 CREATE FUNCTION
名称
CREATE FUNCTION -- 定义一个新的函数
概要
CREATE [ OR REPLACE ] FUNCTION name
[ (argname [ IN | IN OUT | OUT ] argtype [ DEFAULT value ]
[, ...]) ]
RETURN rettype -- 这里是必须的,不是可选
[ AUTHID { DEFINER | CURRENT_USER } ]
{ IS | AS }
[ declaration; ] [, ...]
BEGIN
statement; [...]
[ EXCEPTION
{ WHEN exception [ OR exception ] [...] THEN
statement; [, ...] } [, ...]
]
END [ name ]

描述
CREATE FUNCTION 命令用于定义了一个新的函数。而CREATE OR REPLACE FUNCTION命令既
可以创建一个新的函数,也可以用新创建的函数定义替代已存在的函数定义。
如果在命令中包含了模式的名称,那么函数是在指定模式下创建。否则就在当前模式下创建。新创
建函数的名称不能和同一模式下任何带有相同参数类型函数的名称相同。然而,带有不同参数类型
的函数可以使用相同的函数名称(我们把这种方式称为重载)。(函数的重载是一个Postgres
Plus Advanced Server 的特性,与Oracle不兼容)。
通过使用CREATE OR REPLACE FUNCTION命令,我们可以更新已存在函数的定义。但是不能用
这种方法改变函数的名称或者参数类型(如果你进行这样的尝试话,实际上是另外创建一个新的函
数)。而且 CREATE OR REPLACE FUNCTION命令不会改变已存在函数的返回值,除非删除函数
后重新创建。
创建函数的用户是新创建函数的所有者。
参数
name
要创建函数的名称(可以采用模式限定的方式引用)。
argname
一个参数的名称。参数是通过在函数体内使用这个名称来引用的。
IN | IN OUT | OUT
参数模式。IN将参数声明为输入参数。这是缺省的情况。 IN OUT 允许参数既可以接收
值,也可以返回值。 而OUT则指定参数只用于输出。
argtype
函数参数的数据类型。参数类型可以是基本数据类型,带有%TYPE的列的类型拷贝,或者是
一个用户定义类型,比如嵌套表或者是一个对象类型。对于任何基础数据类型来说,不应
该指定长度。例如,我们应该使用VARCHAR2这种形式,而不是VARCHAR2(10)。
通过使用tablename.columnname%TYPE这种形式,可以引用一个列类型。这样当表定义发生
改变的时候,我们可以不用对函数的具体实现进行修改。
DEFAULT value
当调用函数时没有为参数提供值,我们使用这个参数为输入参数提供一个缺省值。而对于
模式为IN OUT或者OUT的参数来说,可以不指定参数DEFAULT的值。
rettype
返回值的数据类型,可以是已列出参数类型中的任何一种。和参数argtype一样,对参数
rettype不应该指定长度。
DEFINER | CURRENT_USER
用来指定是否能使用函数所有者(DEFINER)或者当前执行函数用户(CURRENT_USER)
的权限来确定是否允许访问在函数中引用的数据库对象。在函数所有者(DEFINER)这种情
况下,使用函数所有者的搜索路径来解析对非限定的数据库对象的引用。同时,在当前执
行函数用户(CURRENT_USER)这种情况下下,是使用当前执行函数用户的搜索路径来解析
对非限定的数据库对象的引用。DEFINER是缺省选项。
declaration
变量,类型或者是REF CURSOR的声明。
statement
SPL程序语句。需要注意的是对于一个DECLARE - BEGIN - END的代码块来说,它本身就被
认为一条SPL语句。因此,函数体内部可以包含嵌套代码块。
exception
异常条件的名称,例如NO_DATA_FOUND, OTHERS等等。

热心网友 时间:2022-04-08 07:06

create table t_test(name varchar2(20),len number(10));

create or replace function f_test
(input1 in number,
input2 in number
) return number
as
begin
return input1+input2;
end f_test;

create or replace procere p_test
(
v_str in varchar2
)
as
begin
insert into t_test(name,len) values(v_str,length(v_str));
commit;
end p_test;

热心网友 时间:2022-04-08 08:41

table
create table T_TEST(a(varchar2(20)),b(number(111)))

function
create or replace function F_TEST(A number,B number)
return number
is
v_c number
begin
v_c:=A+B
return(v_c);
end f_test;

procre
CREATE or replace procre P_TEST(v_str ivarchar2
)
as
begin
insert into t_test(A,B) values(v_str,length(v_str));
end ;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
长沙到西昌。坐火车先从长沙到成都、成都东,再到西昌,哪个方便一些 S先生与P先生谜题的题面 为什么首都设在襄阳 改姓可以不随父母性吗 韩艺瑟怎么改姓? 纸、墨、笔、砚是中国传统的文房四宝,墨的使用最早在 [ ] A.商代后期... 想问下创维光伏E企赢模式有哪些优势,到底值不值得投资啊?有没有合作... 太平洋太享e保百万医疗值得入手吗?每年花多少钱? 爱e满分适合哪些人买?注意哪些问题? 太平洋太享e保百万医疗适合哪些人买?价格多少? 关于oracle的一个小问题---简单说一下oracle的实例和例程,以及他们的联 ... 关于oracle 数据库的一个小知识点不懂。。。 怎样赞美老师 赞美老师的话怎么写??80字内 急啊 星期三就要交了..~~ 写一篇歌颂教师,赞美教师的作文怎么写? 怎么写赞美老师的话 赞美老师的句子,怎么写啊? 一篇赞美老师的作文怎么写,记得要400字以上哦 赞美老师的段落结尾 写一篇赞美老师的作文要求1000字。 家长夸老师尽职尽责话怎么写? 赞美老师的作文怎么写 赞美幼儿园老师的话怎么写? 称赞老师的句子怎么写 类似于豪欲家族的小说 跟豪欲家族差不多的小说 有没有类似 豪欲家族 这类小说 跪求 豪欲家族141免费下载 豪欲家族1-41全文 txt下载 求豪欲家族 41章以后的 关于oracle的重要问题 关于ORACLE的问题请教 关于Oracle的问题! 关于oracle的问题 orcle的存储过程基本语法和hibernate调用的过程 oracle数据库的一些问题 关于oracle 的几个问题(急!!) 关于Oracle 的问题 关于Oracle 的问题? oracle 数据库 的一些疑问。 关于oracle版本的一个小问题 关于oracle数据库 龙王传说魔鬼岛发生了什么 关于oracle数据库的问题 关于Oracle数据库的几个问题,希望高人能帮忙解答。只有20分~~全给您... 关于oracle数据库的问题。谢谢大家了。 唐舞麟去魔鬼群岛训练了多久 关于oracle的一个问题? 龙王传说魔鬼群岛里面得能量是不是毁灭之神和生命之神 唐舞麟在魔鬼岛获得了什么?