当前位置:首页>开发>正文

oracle函数处于无效状态 新人求指教 oracle 选项缺失或无效

2023-04-29 01:11:15 互联网 未知 开发

 oracle函数处于无效状态 新人求指教 oracle 选项缺失或无效

oracle函数处于无效状态

只要create OR REPLACE Function 都能成功
你这是用sqlserver的语法来创建oracle的函数,不报错都怪了
说吧,是想输入一个id
然后在这个表里求出这个id对应的itemnumber:name 并把第一位替换成空?

新人求指教 oracle 选项缺失或无效

为啥要写EXCEPTION?你都没定义EXCEPTION的异常事件。如果要用异常,需要在触发异常的时候使用raise 异常事件名称,,异常触发后,循环将跳出。同时前后需要用begin 和end来表示异常监控的语句块。
例如
DECLARE
xxxx exception--异常事件名称
begin

begin --异常开始
if a>0 then
raise XXXX--调用异常
END IF
exception
when xxxx then --声明的异常事件处理
insert into .........
when others then---其他异常处理
。。。。。。。。。。。
end --异常结束

其实你这个可以更简单
BEGIN
n:=0
FOR emp_cu IN emp_curs LOOP
IF emp_cu.SALARY=&p_salary THEN
n:=n 1
END IF
END LOOP

if n>1 THEN
INSERT INTO messages VALUES(More than one employee with a salary of||to_char($p_salary))
COMMIT
elsif n=0 THEN
INSERT INTO messages VALUES(No employee with a salary of||to_char($p_salary))
COMMIT
elsif n=1 THEN INSERT INTO messages VALUES(employees.FIRST_NAME||employees.LAST_NAME||salary is||to_char($p_salary))
COMMIT
else
INSERT INTO messages VALUES(Some other error occurred.)
COMMIT
end if
END

怎么在oracle中总是出现无效的sql语句呢

把avgnumber number:=avgtoyprice改成
avgnumber number然后下面这样赋值
SELECT avgtoyprice() INTO avgnumber FROM dual

oracle建表时提示数据类型无效是怎么回事

名字不能用-
SQL> CREATE TABLE kcxx
2 (course_code VARCHAR2(8) NOT NULL,
3 course_name VARCHAR2(30),
4 department VARCHAR2(30),
5 research_office VARCHAR2(30),
6 course_credit NUMBER(2,1),
7 scheduling NUMBER(2),
8 term VARCHAR2(20),
9 attribute VARCHAR2(10))

Table created

oracle 自定义函数,调用时报“程序包或函数无效”

你的这个函数编译大概不能通过吧: lxi_split函数已经将返回值定义为TA_lxi表对象,TA_lxi表对象中的元素为TY_lxi类型的,但是在做pipe row给返回表增加元素时使用的又是字符串,这明显与定义不符合,编译会有错误的。
该函数没有编译通过,当然在调用时会提示“程序包或函数不存在”,因为该函数还没有建立。
应该定义一个TY_lxi变量,例如:
v_data TY_lxi := TY_lxi() -- 这里括号里面的值要随TY_lxi类型而定
然后,在循环中将字符串赋给该变量的N2成员: v_data.N2 := v_str
接下来是把该变量加入返回表: pipe row(v_data)

最新文章

随便看看