- 浏览: 216488 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
henchong:
如果提示信息全是数字的话,是不会自动换行的,不知道这个该怎么解 ...
用ExtJs为表格单元格增加Tooltips浮动信息 -
李君寻:
自动换行,算是懂了
ColumnLayout的使用方法 -
icrwen:
楼主能解释下为啥要用air技术呢,是不是只用ext就可以了啊
extjs+air开发 -
wenniuwuren:
不能显示图片..
利用session实现一次性验证码 -
追风筝的孩子:
还是没有解决啊
com.ibatis.sqlmap.client.SqlMapException: There is no statement named 语句名 in thi
在包中创建存储过程的语句是
CREATE OR REPLACE PACKAGE PackageName AS
--Insert Roles Declaration---
PROCEDURE procedurename(
);
END PackageName ;
注意:写存储过程时要注意参数名不能与数据库 字段名相同 . 否则 Oracle 会把这个参数名看成是字段名的 , 即使你用表的别名区分也不行 . 所以起参数名的时候一定要注意这点了 .
e.g:在oracle存储过程中返回一个结果集
包
create or replace package XX_ECIF_VIP_PKG is
-- Author : HUAWANG
-- Created : 2007-11-1 14:33:38
-- Purpose :
g_vip_info_source_type_etl constant varchar2(30) := 'ETL';
g_vip_info_sourec_type_card constant varchar2(30) := 'CARD';
g_vip_count_mode_zc constant varchar2(10) := '10';
g_vip_count_mode_dk constant varchar2(10) := '20';
g_credit_rating_cd_normal constant NUMBER(5) := 0;
g_currency_cd constant varchar2(3) := 'CNY';
g_vip_mode_count_status_a constant varchar2(1) := 'A';
-- Public procedure declarations
procedure CHECK_VIP_PRC;
procedure insert_vip_prc(v_party_id in number, v_vip_code in varchar2);
end XX_ECIF_VIP_PKG;
包体:create or replace package body XX_ECIF_VIP_PKG is
-- procedure implementations
procedure CHECK_VIP_PRC as
begin
insert into XX_ECIF_VIP_INFO
(PARTY_ID, VIP_CODE, AS_OF_DATE, EFFECTIVE_DATE, SOURCE_TYPE)
select uv.PARTY_ID PARTY_ID,
uv.VIP_CODE VIP_CODE,
uv.AS_OF_DATE AS_OF_DATE,
sysdate EFFECTIVE_DATE,
g_vip_info_source_type_etl SOURCE_TYPE
from (
--取日个人客户资产总额对应VIP等级、贷款总额对应VIP等级、卡系统个人客户对应VIP等级中最大的
select u.PARTY_ID PARTY_ID,
max(u.VIP_CODE) VIP_CODE,
max(u.AS_OF_DATE) AS_OF_DATE
From (
/* */
--日个人客户贷款总额对应VIP等级
select clv.PARTY_ID PARTY_ID,
xevcc.vip_code VIP_CODE,
clv.AS_OF_DATE AS_OF_DATE
from (select xalcny.PARTY_ID PARTY_ID,
sum(xalcny.ORG_BOOK_BAL *
NVL(oerh.EXCHANGE_RATE, 1)) CUR_AMOUNT_BAL,
max(xalcny.AS_OF_DATE) AS_OF_DATE
from (select xal.PARTY_ID,
xal.ORG_BOOK_BAL,
xal.AS_OF_DATE,
CURRENCY
from (select PARTY_ID,
PROD_CODE,
AS_OF_DATE,
ORG_BOOK_BAL,
CUR_BOOK_BAL,
CREDIT_RATING_CD,
CURRENCY,
row_number() over(partition by PARTY_ID, PROD_CODE order by AS_OF_DATE
desc) as row_number
from XX_ACCTINFO_LOAN) xal
join XX_ECIF_VIP_STAT_MODE vsm on xal.PROD_CODE =
vsm.PROD_CD
where xal.row_number = 1
and xal.CREDIT_RATING_CD =
g_credit_rating_cd_normal
and xal.CUR_BOOK_BAL > 0
and vsm.COUNT_MODE = g_vip_count_mode_dk
and vsm.STATUS =
g_vip_mode_count_status_a) xalcny
left join (select FROM_CURRENCY_CD,
EXCHANGE_RATE,
row_number() over(partition by FROM_CURRENCY_CD, TO_CURRENCY_CD order
by EFFECTIVE_DATE desc) as row_number
from OFSA_EXCHANGE_RATE_HIST
where TO_CURRENCY_CD = g_currency_cd) oerh on (xalcny.CURRENCY =
oerh.FROM_CURRENCY_CD and
row_number = 1)
group by PARTY_ID) clv
join XX_ECIF_VIP_CHK_CONDIT xevcc on (clv.CUR_AMOUNT_BAL >=
xevcc.count_lowest and
clv.CUR_AMOUNT_BAL <
xevcc.count_highest)
or (clv.CUR_AMOUNT_BAL >=
xevcc.count_lowest and
xevcc.count_highest is null)
where xevcc.COUNT_MODE = g_vip_count_mode_dk
Union All
--卡系统个人客户对应VIP等级
Select PARTY_ID, VIP_CODE, AS_OF_DATE
from (select party_id,
vip_code,
as_of_date,
row_number() over(partition by party_id order by vip_code desc) as row_number
from XX_ECIF_VIP_INFO
where source_type = g_vip_info_sourec_type_card
and vip_code is not null)
where row_number = 1) u
Group by PARTY_ID) uv
left join (
--OFDM中系统已判断个人客户VIP等级
select evi.PARTY_ID, evi.AS_OF_DATE, evi.VIP_CODE
from (select party_id,
as_of_date,
vip_code,
row_number() over(partition by party_id order by as_of_date desc) as row_number
from XX_ECIF_VIP_INFO
where source_type = g_vip_info_source_type_etl) evi
where row_number = 1) viv on uv.PARTY_ID = viv.PARTY_ID
where uv.VIP_CODE > NVL(viv.VIP_CODE, '');
commit;
exception
when others then
null;
end CHECK_VIP_PRC;
procedure insert_vip_prc(v_party_id in number, v_vip_code in varchar2) is
begin
insert into bocofsa.xx_ecif_vip_info
(party_id, as_of_date,vip_code,effective_date, source_type)
values
(v_party_id, sysdate,v_vip_code, sysdate, 'CUST');
commit;
exception
when others then
null;
end insert_vip_prc;
end XX_ECIF_VIP_PKG;
发表评论
-
oracle从9.2.0.1升级到9.2.0.8步骤
2009-05-29 13:15 2354升级oracle(administrator用 ... -
Oracle数据库备份与恢复
2009-03-20 12:26 1237一、 导出/导入(Export/Imp ... -
SQL语句优化方法30例
2009-01-05 11:54 950在SQL语句优化过程中, ... -
ORACLE SQL语句优化总结
2009-01-05 11:54 807(1) 选择最有效率的表名顺序(只在基于规则的优化器中有效): ... -
通过分析SQL语句的执行计划优化SQL(二)
2009-01-05 11:31 13865.1背景知识 5.2执行计划的步骤及顺序 ... -
通过分析SQL语句的执行计划优化SQL(一)
2009-01-05 11:25 1456第1章 性能调整综述 Oracle数据库是高度可调的数据库 ... -
如何从结果集中获得随机结果
2009-01-05 11:22 674法一:select * from (select * from ... -
查看谁锁表SQL
2009-01-05 11:22 1482杀掉查找出的进程必须有sys 权限 法一:SELECT &q ... -
oracle表分区总结
2009-01-05 11:21 1115Oracle中提供了对表进行分区的机制,通过表分区,可以将表空 ... -
ORACLE UPDATE 语句语法与性能分析
2009-01-05 11:21 1531为了方便起见,建立了以下简单模型,和构造了部分测试数据: 在某 ... -
关于在ORACLE的存储过程中返回结果集和JAVA取得结果的试验例子
2009-01-05 11:20 748先创建包和包体 CREATE OR REPLACE PACKA ... -
ORACLE SQL语句优化技术分析
2009-01-05 11:18 692操作符优化 IN 操 ... -
优化数据库的思想
2009-01-05 11:18 795优化数据库的思想: ================ 1、关键 ... -
Caché后关系型数据库
2009-01-05 11:16 883作为后关系型数据库, Caché 采用对象数据模型进行建模,使 ...
相关推荐
1.1.1创建存储过程 3 1.1.2 存储过程删除 5 1.1.3 调用存储过程 5 1.2存储函数(FUNCTIONE) 6 1.2.1 创建存储函数 6 1.2.2 删除存储函数 7 1.3 包(package) 7 1.3.1 包的基本结构 7 1.3.2 包的创建 7 1.3.3 调用包中...
- **权限需求**:创建存储过程需要`CREATE PROCEDURE`或`CREATE ANY PROCEDURE`权限。 - **基本语法**: ```sql CREATE [OR REPLACE] PROCEDURE 存储过程名 [(参数 [IN|OUT|INOUT] 数据类型)] {AS | IS} [说明...
**2.1 创建存储过程:** 存储过程的创建使用`CREATE OR REPLACE PROCEDURE`语句。例如: ```sql CREATE OR REPLACE PROCEDURE my_procedure (p_param IN NUMBER) AS BEGIN -- 过程体 END; ``` - `IN`表示参数是...
接下来,我们创建了一个名为 TESTPACKAGE 的包,包中包含了一个名为 TESTC 的存储过程。存储过程 TESTC 有一个输出参数,类型为游标类型。我们使用 CALLABLESTATEMENT 来调用存储过程,获取游标类型参数的值,并将其...
创建存储过程包 首先,在拥有相应表的用户下创建一个存储过程包。这个存储过程包用于实现特定的业务逻辑,例如查询、更新或插入操作。 ```plsql CREATE OR REPLACE PACKAGE pkg_example AS PROCEDURE proc_query_...
首先,在 Oracle 数据库中创建一个包(PACKAGE),包中包含多个存储过程,每个存储过程可以返回一个游标(REF CURSOR),该游标可以返回多行记录集。下面是一个示例包的定义: ```sql CREATE OR REPLACE PACKAGE PKG...
1. 创建存储过程 在 SQL Server 中,存储过程是一个预编译的 SQL 语句集,可以对数据库中的数据进行操作。在本例中,创建了一个名为 `InsertUser` 的存储过程,该存储过程用于向 `BookUser` 表中插入新用户信息。 ...
创建存储过程使用`CREATE PROCEDURE`语句。其基本语法如下: ```sql CREATE [OR REPLACE] PROCEDURE 过程名 (参数列表) AS BEGIN -- PL/SQL代码块 END; ``` 其中`参数列表`定义了存储过程中使用的输入参数或输出...
在 Oracle 中,可以使用 `DBMS_SCHEDULER` 包来创建定时任务,以自动调用存储过程。定时任务的创建主要包括以下几个步骤: 1. **定义程序**: - 使用 `DBMS_SCHEDULER.create_program` 创建程序对象。 - 需要指定...
#### 2.2 创建存储过程 假设我们有一个名为`userManage`的存储过程,它接受多个输入参数并返回一个整数值。这个存储过程可能定义如下: ```sql CREATE PROCEDURE userManage ( OUT return_value INT, IN p_...
#### 三、创建存储过程 首先,我们需要创建一个简单的存储过程作为示例。在这个例子中,我们将创建一个名为`INF_HstIshISTR`的存储过程,用于向表`abc`中插入一条记录。 ```sql CREATE OR REPLACE PACKAGE mqce IS...
在PL/SQL中,创建存储过程使用`CREATE OR REPLACE PROCEDURE`语句,调用存储过程则通过简单的函数调用实现。查看存储过程定义使用`DESCRIBE`或`SELECT`从数据字典视图中获取信息,修改存储过程使用`ALTER PROCEDURE`...
#### 创建存储过程 存储过程是一种在数据库中存储的预编译的SQL和PL/SQL语句集合。它可以在任何时候被调用执行。创建一个简单的存储过程如下: ```sql CREATE OR REPLACE PROCEDURE my_procedure (p_no NUMBER) IS ...
### 练习四:创建存储过程查询特定条件下的员工信息 练习要求创建一个存储过程,能够返回工资高于3000并且部门号为20的员工信息。 ```sql CREATE OR REPLACE PACKAGE my_package IS TYPE cur_type IS REF CURSOR;...
### Oracle存储过程分页知识点详解 #### 一、Oracle存储过程分页原理及实现方法 在Oracle数据库中,实现分页查询通常有两种方法:一种是使用`ROWNUM`伪列,另一种则是通过存储过程实现。其中,使用存储过程进行...
文档中具体的代码示例涉及了创建存储过程、调用存储过程以及处理存储过程返回结果的全过程。例如,创建一个名为adddept的存储过程,该过程接受三个参数,向dept表中插入一行数据。在Java代码中,通过...
以下是在Oracle数据库中创建存储过程的例子: ```sql CREATE OR REPLACE PROCEDURE addMember ( name IN VARCHAR2(50), address IN VARCHAR2(50) ) AS BEGIN INSERT INTO family (f.name, f.address) VALUES ...
#### 创建存储过程包:`p_page` 首先,我们创建了一个名为`p_page`的包,这个包包含了两个主要的过程:`Pagination`和`PageRecordsCount`。包的结构如下所示: ```sql create or replace package p_page is TYPE ...