范文无忧网范文学习范文大全

如何使用Oracle存储过程的一个简单例子

02月07日 编辑 fanwen51.com

[谁有关于谈理想议论文的例子]人人心中都有一个梦想,这就是我们的理想。有的人的理想很平凡,有的人的理想很渺茫,有的人的理想很远大……理想,无疑是我们通往成功大门的必备条件。古往今来,许多人都在为理想奋...+阅读

楼主您好 ---创建表 create table TESTTABLE ( id1 VARCHAR2

(12), name VARCHAR2(32) ) select t.id1,t.name from TESTTABLE t insert into TESTTABLE (ID1, NAME) values ('1', 'zhangsan'); insert into TESTTABLE (ID1, NAME) values ('2', 'lisi'); insert into TESTTABLE (ID1, NAME) values ('3', 'wangwu'); insert into TESTTABLE (ID1, NAME) values ('4', 'xiaoliu'); insert into TESTTABLE (ID1, NAME) values ('5', 'laowu'); ---创建存储过程 create or replace procedure test_count as v_total number

(1); begin select count(*) into v_total from TESTTABLE; DBMS_OUTPUT.put_line('总人数:'||v_total); end; --准备 --线对scott解锁:alter user scott account unlock; --应为存储过程是在scott用户下。还要给scott赋予密码 ---alter user scott identified by tiger; ---去命令下执行 EXECUTE test_count; ----在ql/spl中的sql中执行 begin -- Call the procedure test_count; end; create or replace procedure TEST_LIST AS ---是用游标 CURSOR test_cursor IS select t.id1,t.name from TESTTABLE t; begin for Test_record IN test_cursor loop---遍历游标,在打印出来 DBMS_OUTPUT.put_line(Test_record.id1||Test_record.name); END LOOP; test_count;--同时执行另外一个存储过程(TEST_LIST中包含存储过程test_count) end; -----执行存储过程TEST_LIST begin TEST_LIST; END; ---存储过程的参数 ---IN 定义一个输入参数变量,用于传递参数给存储过程 --OUT 定义一个输出参数变量,用于从存储过程获取数据 ---IN OUT 定义一个输入、输出参数变量,兼有以上两者的功能 --这三种参数只能说明类型,不需要说明具体长度 比如 varchar2

(12),defaul 可以不写,但是作为一个程序员最好还是写上。 ---创建有参数的存储过程 create or replace procedure test_param(p_id1 in VARCHAR2 default '0') as v_name varchar2(32); begin select t.name into v_name from TESTTABLE t where t.id1=p_id1; DBMS_OUTPUT.put_line('name:'||v_name); end; ----执行存储过程 begin test_param('1'); end; default '0' ---创建有参数的存储过程 create or replace procedure test_paramout(v_name OUT VARCHAR2 ) as begin select name into v_name from TESTTABLE where id1='1'; DBMS_OUTPUT.put_line('name:'||v_name); end; ----执行存储过程 DECLARE v_name VARCHAR2(32); BEGIN test_paramout(v_name); DBMS_OUTPUT.PUT_LINE('name:'||v_name); END; -------IN OUT ---创建存储过程 create or replace procedure test_paramINOUT(p_phonenumber in out varchar2) as begin p_phonenumber:=''||p_phonenumber; end; ---- DECLARE p_phonenumber VARCHAR2(32); BEGIN p_phonenumber:='26731092'; test_paramINOUT(p_phonenumber); DBMS_OUTPUT.PUT_LINE('新的电话号码:'||p_phonenumber); END; -----sql命令下,查询当前用户的存储过程或函数的源代码, -----可以通过对USER_SOURCE数据字典视图的查询得到。USER_SOURCE的结构如下: SQL>DESCRIBE USER_SOURCE ; Name Type Nullable Default Comments ---- -------------- -------- ------- ------------------------------------------------------------------------------------------------------------- NAME VARCHAR2(30) Y Name of the object TYPE VARCHAR2

(12) Y Type of the object: "TYPE", "TYPE BODY", "PROCEDURE", "FUNCTION", "PACKAGE", "PACKAGE BODY" or "JAVA SOURCE" LINE NUMBER Y Line number of this line of source TEXT VARCHAR2(4000) Y Source text SQL>---查询出存储过程的定义语句 select text from user_source WHERE; ----查询存储过程test_paramINOUT的参数 SQL>DESCRIBE test_paramINOUT; Parameter Type Mode Default? ------------- -------- ------ -------- P_PHONENUMBER VARCHAR2 IN OUT SQL>---查看当前的存储过程的状态是否正确, ---VALID为正确,INVALID表示存储过程无效或需要重新编译 SELECT STATUS FROM USER_OBJECTS WHERE OBJECT_NAME='TEST_COUNT'; -----如果要检查存储过程或函数的依赖性,可以通过查询数据字典USER_DENPENDENCIES来确定,该表结构如下: SQL>DESCRIBE USER_DEPENDENCIES; Name Type Nullable Default Comments -------------------- ------------- -------- ------- ---------------------------------------------------------- NAME VARCHAR2(30) Name of the object TYPE VARCHAR2(17) Y Type of the object REFERENCED_OWNER VARCHAR2(30) Y Owner of referenced object (remote owner if remote object) REFERENCED_NAME VARCHAR2(64) Y Name of referenced object REFERENCED_TYPE VARCHAR2(17) Y Type of referenced object REFERENCED_LINK_NAME VARCHAR2(128) Y Name of dblink if this is a remote object SCHEMAID NUMBER Y DEPENDENCY_TYPE VARCHAR2

(4) Y SQL>...

延伸阅读:

通俗并举例子解释什么是公允价值会计方面你好,会计老郑·一点通网校回答你的问题: 就是你情我愿的价格记账的价值。 如果考会计从业资格证报班,建议选择网校学习,随时学习,充分利用闲暇时间进行学习,老师随时辅导,一对一答...

企划案是怎么写的有什么格式没有没有例子把企划用文字(或文字加图案)完整地书写出来,就成为企划案(或称企划书)了。 企划案是一个新文种。企划被用在从大的方面决定工作内容,如开发产品、管理品牌、设计企业运营模式、设...

生命都是有价值的例子思修课上老师讲的一个故事,很受启发: 在一次百人讨论大会上,有一位著名的演说家静静地站了起来,没有讲一句开场白,而是手举一张崭新的百元大钞,面对在场的人们坦诚地问:“你们谁想...

给你一个句子如何辨别虚拟语气中的三种时态请举例子一、与现在事实相反若与现在事实相反,虚拟语气的条件从句的谓语用过去式(be通常用were),主句谓语用“should (would, could, might)+动词原形”。如:If you took a taxi,you'd ge...

护士无私奉献的例子无私奉献的护士张小宁 -------------------------------------------------------------------------------- 她是一群白医天使中的佼佼者,她以精湛的护理技能,崇高的敬业精神...

答辩状的具体形式是怎样的请帮我举下模拟例子答辩状:答辩状是被告人或被上诉人针对原告人或上诉人的诉状或上 诉状的内容作出的答复和辩驳的书状。 格式: 1.首部:标题“答辩状”;答辩人的基本情况(姓名、性别、年龄、民 族、...

名人把握青春的例子急要在时间上争分夺秒是上进,在金钱上斤斤计较是堕落。 抛弃今天的人,今天也会抛弃他;而被今天抛弃的人,他也许就没有了明天。 不要沉湎于昨天,不要等待明天,一切从现在开始。 时间就...

古今中外有很多有关珍爱生命奋斗不息的事例举出简要的例子韩信很小的时候就失去了父母,主要靠钓鱼换钱维持生活,经常受一位靠漂洗丝棉老妇人的周济,屡屡遭到周围人的歧视和冷遇。一次,一群恶少当众羞辱韩信。有一个屠夫对韩信说:你虽然长...

关于珍爱生命奋斗不息的例子张海迪,海伦凯勒 张:5岁患脊髓病,胸以下全部瘫痪,在残酷的命运挑战面前,张海迪没有沮丧和沉沦,她以顽强的毅力和恒心与疾病做斗争,经受了严峻的考验,对人生充满了信心。 海:儿时成了...

推荐阅读
图文推荐
栏目列表