文章目录
存储过程一般来说是用不到的,但是有时必须用。
例如 要操作clob字段,直接操作会报错,超过string的长度了。
clob字段直接执行是不行的,因为超过4000个字符会报错。
存储过程操作clob
因此采用存储过程来实现。
代码例子:
DECLARE
data1 clob;
data2 clob;
BEGIN
data := 'json串';
data2 := '';
INSERT INTO T_TABLE ( id, DATA, DATA2)
VALUES
( '10', data, data2);
COMMIT;
END;
/
这样就可以实现操作clob数据。
因为在操作中出了些问题,所以需要连接下存储过程。
dbeaver操作存储过程
注:dbeaver编辑存储过程和纯sql操作存储过程有点不一样的。
mysql创建存储过程
mysql语法:
DELIMITER //
CREATE PROCEDURE procedure_name (IN parameter_name datatype, OUT parameter_name datatype)
BEGIN
-- 代码块
END //
DELIMITER ;
oracle创建存储过程
oracle语法:
CREATE OR REPLACE PROCEDURE procedure_name (parameter_name IN datatype, parameter_name OUT datatype)
AS
BEGIN
-- 代码块
END;
最简单的存储过程
定义变量
mysql和oracle的区别
sql操作存储过程
报错
报错 PLS-00103: 出现符号 "END"在需要下列之一时:
( begin case
declare exit for goto if loop mod null pragma raise return
select update while with
<<
continue close current delete fetch lock insert open rollback
savepoint set sql execute commit forall merge pipe purge
Compile error at line 14, column 1
这个报错一般是少sql。
解决方案,存储过程必须要有实际有效的语句(在begin和end中间)。
最简单的语句。
NULL; 或者 null; 都可以。