CREATE OR REPLACE PROCEDURE P_TEMP_XUE911 ( V_PRO_ID VARCHAR2,
V_MONTH_ID VARCHAR2,
V_SERVICE_TYPE VARCHAR2) IS
V_SQL LONG;
V_STR LONG;
BEGIN
--动态SQL创建临时表
V_STR :='CREATE GLOBAL TEMPORARY TABLE ZB_XUE911 (
COL_PROV_ID VARCHAR2(200),
COL_SUBS_INSTANCE_ID VARCHAR2(200),
COL_DEVICE_NUMBER NUMBER,
COL_TOTAL_FEE_ALL NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ';
EXECUTE IMMEDIATE V_STR;
---查询SERVICE_TYPE为20AAAAAA或30AAAAAA出账总数小于0的记录插入到临时表
V_SQL :='INSERT INTO ZB_XUE911
SELECT '''|| V_PRO_ID||''',SUBS_INSTANCE_ID,DEVICE_NUMBER, TOTAL_FEE_ALL
FROM DWA_V_M_CUS_MB_USER_EXT_'||V_PRO_ID||' T
WHERE T.PRO_ID='''||V_PRO_ID||''' AND T.MONTH_ID = '''||V_MONTH_ID||''' AND T.service_type ='''||V_SERVICE_TYPE||'''AND T.total_fee_all <0 AND ROWNUM<6';EXECUTE IMMEDIATE V_SQL;COMMIT;END;求指点 谢谢大侠们 在线等奥
V_MONTH_ID VARCHAR2,
V_SERVICE_TYPE VARCHAR2) IS
V_SQL LONG;
V_STR LONG;
BEGIN
--动态SQL创建临时表
V_STR :='CREATE GLOBAL TEMPORARY TABLE ZB_XUE911 (
COL_PROV_ID VARCHAR2(200),
COL_SUBS_INSTANCE_ID VARCHAR2(200),
COL_DEVICE_NUMBER NUMBER,
COL_TOTAL_FEE_ALL NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ';
EXECUTE IMMEDIATE V_STR;
---查询SERVICE_TYPE为20AAAAAA或30AAAAAA出账总数小于0的记录插入到临时表
V_SQL :='INSERT INTO ZB_XUE911
SELECT '''|| V_PRO_ID||''',SUBS_INSTANCE_ID,DEVICE_NUMBER, TOTAL_FEE_ALL
FROM DWA_V_M_CUS_MB_USER_EXT_'||V_PRO_ID||' T
WHERE T.PRO_ID='''||V_PRO_ID||''' AND T.MONTH_ID = '''||V_MONTH_ID||''' AND T.service_type ='''||V_SERVICE_TYPE||'''AND T.total_fee_all <0 AND ROWNUM<6';EXECUTE IMMEDIATE V_SQL;COMMIT;END;求指点 谢谢大侠们 在线等奥
解决方案 »
- 送分40分:请问ORACLE中的SID是什么?
- SID和IP的关系问题
- 如果通过Java访问Oracle返回值为Record的函数
- ORACLE 9 数据库redo日志被全部删除了,如何能够重新把数据库启动起来?急!急!急!在线等待……
- 大家帮帮我吧,我都急哭了两天了..有关sql server2000调用oracle8.1.7中存储过程的问题。
- 请教如何用语句实现如下问题!
- 谁能帮我解决一下这个问题
- windows2000下怎么建立odbc数据源 for oracle
- 關於在客戶端機連接oracle的問題?急!!在線等!!
- 在Solaris下用什么命令来开启Oracle的各项服务???
- oracle求统计SQL
- 请教 如何将某一个字段中的字符串转换成行
提示错误了
--临时表是那些只在事务处理和会话期间存在数据的表
create global temporary table session_table
on commit preserve rows --preserve保留
as select * from scott.emp
select count(*) from session_table --14条记录
--临时表,会话结束的时候表数据清空
create global temporary table transactioin_table
on commit delete rows --事务结束的时候该表的行会被删除
as select * from scott.empinsert into transactioin_table
select * from scott.emp
select count(*) from transactioin_table --14条记录
commit --提交事务
select count(*) from session_table --14条记录
select count(*) from transactioin_table --0条记录!!
--断开会话,重新登陆
select count(*) from session_table --0条记录!!
select count(*) from transactioin_table --0条记录!!
--傳參有錯
exec P_TEMP_XUE911('010','201207','20AAAAAA')
--此處有也錯
COMMIT PRESERVE(DELETE) ROWS
要麼是
ON COMMIT PRESERVE ROWS
--或
ON COMMIT DELETE ROWS