当前位置:首页 » 存储配置 » vboracle存储过程

vboracle存储过程

发布时间: 2022-07-30 05:32:05

1. oracle中的存储过程怎么写

Oracle存储过程写法实例

总结项目中写的存储过程例子:
Oracle存储过程基本语法 存储过程
1 CREATE OR REPLACE PROCEDURE 存储过程名
2 IS/AS
3 BEGIN
4 NULL;
5 EXCEIPTION;
6 END;

1、创建存储过程,后面可用is或者as:
create or replace procere PRO_COMPLAIN_TEMPLATE as

2、定义变量,此处用到了%TYPE和%ROWTYPE,参考 /database/201211/168564.html ,另外定义了一个游标,TEM_INSTANCE TEMPLATE_CUR%ROWTYPE这个类型定义必须要在游标定义之后:
NEED_DO_FOR_ZL INTEGER;
CURRENT_MAX_ID MEMO_TEMPLET.TEMPLET_ID%TYPE;
CURSOR TEMPLATE_CUR IS SELECT TEMPLET_NAME, TEMPLET_CONTENT FROM SYS_COMPLAINT_TEMPLET;
TEM_INSTANCE TEMPLATE_CUR%ROWTYPE;
3、begin开始块:
begin

4、该插入语句使用了DBLINK,还有使用DBMS_OUTPUT.put_line('打印信息')进行信息输出:
insert into MEMO_TEMPLET (TEMPLET_ID, TEMPLET_CONTENT, TEMPLET_TYPE, TEMPLET_MEMO) (SELECT * FROM MEMO_TEMPLET@COMPANY);

SELECT COUNT(*) INTO NEED_DO_FOR_ZL FROM SYS_COMPLAINT_TEMPLET;
IF(NEED_DO_FOR_ZL > 0) THEN
DBMS_OUTPUT.put_line('打印信息');
SELECT MAX(TEMPLET_ID)+1 INTO CURRENT_MAX_ID FROM MEMO_TEMPLET;
DBMS_OUTPUT.put_line('MEMO_TEMPLET最大ID' || CURRENT_MAX_ID);
FOR TEM_INSTANCE IN TEMPLATE_CUR LOOP
INSERT INTO MEMO_TEMPLET (TEMPLET_ID, TEMPLET_CONTENT,
TEMPLET_TYPE, TEMPLET_MEMO) VALUES (CURRENT_MAX_ID,
TEM_INSTANCE.TEMPLET_CONTENT, '7', NULL);
CURRENT_MAX_ID := CURRENT_MAX_ID + 1;
DBMS_OUTPUT.put_line(TEM_INSTANCE.TEMPLET_CONTENT);
END LOOP;
END IF;
COMMIT;
www.2cto.com
4、exception块,使用WHEN OTHERS THEN,其中用raise可显示错误信息:
exception
WHEN OTHERS THEN
DBMS_OUTPUT.put_line('sqlcode : ' ||sqlcode);
raise;
ROLLBACK;
IF TEMPLATE_CUR%ISOPEN THEN
CLOSE TEMPLATE_CUR;
END IF;
DBMS_OUTPUT.put_line('打印信息');
end;

注:关于游标的使用,如果像本例中使用for循环去遍历游标的话则不需要显式的去用open/close
cursor打开和关闭游标,此处会自己处理,如果使用fetch
into的话就需要显式开关游标,另外任意执行一个update操作,用隐式游标sql的属性%found,%notfound,%rowcount,%isopen观察update语句的执行情况,也可以使用来判断游标状态,如IF
TEMPLATE_CUR%ISOPEN THEN。

2. 在vb中存储过程是什么怎么用

  1. 使用 ADODB.Command:

    1. CommandType = adCmdStoredProc ;

    2. 用Parameters.Append 增加参数 ;

    3. CommandText = "过程名" ;

    4. Execute 执行

  2. 使用 ADODB.Command :

    1. CommandType = adCmdText

    2. CommandText= "exec 过程名 " & 拼接的参数

    3. Execute 执行

3. VB程序如何用ADO向Oracle存储过程传递数组参数

何苦如此呢,要达到最高效率,当然不能再去解析字符串了,建一张临时表tab,把你要传递的参数插入tab中,存储过程中直接关联下tab不就获取到你要的数据了么

4. oracle 存储过程

create table dept
(deptno number,
dname varchar2(20),
loc varchar2(20)
)
1.如果你是取出单个的,你可以定义一个或者多个变量,将取出的值赋给变量
例如:

create or replace procere dept_procere(a in varchar2)
is
v_no number;
v_a varchar2(20);
begin
select a.deptno,a.loc into v_no,v_a
from dept a
where a.dname=a;
dbms_output.put_line('学号为:'||v_no||);
end;
2.如果你取出的是一个结果集,你可以用游标(一个简单的例子)
create or replace procere dept_procere(a in varchar2,v_a out dept%rowtype)
is
--声明游标
cursor c_de(a in varchar2)
is select * from dept where dname=a;
begin
--打开游标,对其中找到的记录进行遍历
open c_de(a);
loop
fetch c_de into v_a;
exit when c_de%notfound;
end loop;
close c_de;
dbms_output.put_line('deptno:'||v_a.deptno);
dbms_output.put_line('dname:'||v_a.dname);
dbms_output.put_line('loc:'||v_a.loc);
end;

3.可注意:在创建存储过程的时候加上or replace,如果遇到重名的存储过程将替换掉!
4.定义变量后面记得加上分号
5.oracle中可以对它直接赋值,可不用set, v_a:='a';
(6.给变量赋值的时候注意它的数据类型 a要单引号)
7.如果你这存储过程是将参数赋值给一个你定义的变量的话,那这样你不觉得是多此一举么?一般将参数赋值给你定义的变量的话,可以进行数据类型转换!可在此存储过程中,没发现它的用处
8.你取出来的数据,要放在变量或是游标中,显示出来,不然你写出来的存储过程有什么用呢?所以 select ...into ...

5. 急问VB中通过ODBC调用Oracle中存储过程无返回得问题

VB连接orcale意义不大,如果有人需要开发这样的程序,一定是脑袋进水了。

6. VB调用Oracle存储过程问题

你首先需要保证存储过程没错误,方法是用plsql 的test功能进行测试一下。
创建一个test存储过程,里面的语句是用你上面的参数调用存储过程,
对这个test过程进行跟踪测试,找出问题修正。

7. oracle的存储过程

第一步:找到proceres,右键新建

第二步:在name中输入存储过程名字(这里输入的就是你以后需要调用的名字),parameters后是参数,在里面定义参数的类型。
第三步:编写存储过程语句。
4 第四步: 存储过程调用
CallableStatement
cs=conn.divpareCall("{call
mymd_gis_pro(?,?,?,?,?)}"); //1代表第一个参数,setint表示参数类型是int型 cs.setInt(1,188);

cs.setInt(2,12); cs.setInt(3,12);

...... //执行Oracle存储过程
cs.execute();

8. Oracle数据库的存储过程怎么写

1 CREATE OR REPLACE PROCEDURE 存储过程名
2 IS
3 BEGIN
4 NULL;
5 END;

行1:
CREATE OR REPLACE PROCEDURE 是一个SQL语句通知Oracle数据库去创建一个叫做skeleton存储过程, 如果存在就覆盖它;
行2:
IS关键词表明后面将跟随一个PL/SQL体。
行3:
BEGIN关键词表明PL/SQL体的开始。
行4:
NULL PL/SQL语句表明什么事都不做,这句不能删去,因为PL/SQL体中至少需要有一句;
行5:
END关键词表明PL/SQL体的结束.
存储过程创建语法:
create or replace procere 存储过程名(param1 in type,param2 out type)
as
变量1 类型(值范围); --vs_msgVARCHAR2(4000);
变量2 类型(值范围);
Begin
Select count(*) into 变量1 from 表A where列名=param1;

If (判断条件) then
Select 列名 into 变量2 from 表A where列名=param1;
Dbms_output。Put_line(‘打印信息’);
Elsif (判断条件) then
Dbms_output。Put_line(‘打印信息’);
Else
Raise 异常名(NO_DATA_FOUND);
End if;
Exception
When others then
Rollback;
End;

9. ORACLE 存储过程是什么 它的用处,好处是什么概念性的东西多点。。

定义:存储过程(Stored Procere )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
存储过程是由流控制和SQL 语句书写的过程,这个过程经编译和优化后存储在数据库服务器中,应用程序使用时只要调用即可。在ORACLE 中,若干个有联系的过程可以组合在一起构成程序包。
优点:
1.存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
2.当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库提供的事务处理结合一起使用。
3.存储过程可以重复使用,可减少数据库开发人员的工作量。
4.安全性高,可设定只有某用户才具有对指定存储过程的使用权。

简单说,你在你的机器上写了个存储过程,这个存储过程像那些表里的数据一样被放在遥远的数据库服务器当中,但是它又是可执行的代码,其他能连到数据库服务器的用户,可以调用你写的存储过程
它的作用是隐藏细节,就是说,你写的存储过程代码可能很复杂,但是其他人调用它却很简单,不用具体知道它是如何做的,且一次能完成多个指令

oracle有系统存储过程和自定义存储过程2种存储过程。
系统存储过程就是由oracle预先提供的一组完成特定功能的存储过程,安装完oracle就有了。
自定义存储过程就是存在oracle数据库里由一组plsql语句组成的自定义过程(procere)。它可以供其它oracle自定义存储过程、自定义函数和job调用或者由客户端程序调用。

热点内容
光遇安卓音韵季有什么 发布:2024-10-06 05:06:51 浏览:76
apk脚本破解 发布:2024-10-06 04:33:23 浏览:51
数模编程 发布:2024-10-06 04:04:43 浏览:16
雷霆一击服务器搭建 发布:2024-10-06 03:58:14 浏览:500
导演脚本 发布:2024-10-06 03:37:34 浏览:566
施耐德有密码程序如何打开 发布:2024-10-06 03:37:00 浏览:893
解压缩文件修复 发布:2024-10-06 03:31:17 浏览:705
如何设置休眠时不需要开机密码 发布:2024-10-06 03:03:25 浏览:233
密码工作三个事关的内容是什么 发布:2024-10-06 02:39:44 浏览:426
21款昂科威哪个配置好 发布:2024-10-06 02:20:39 浏览:839