CREATE OR REPLACE PROCEDURE ss(eff_day VARCHAR2)

-- eff_day 统计日期,格式为 'yyyymmdd'

AS

v_year        INTEGER;

v_month INTEGER;

v_day        INTEGER;

v_date  DATE;

v_tmpDate DATE;

v_count INTEGER;

v_begin INTEGER;

v_eff_date VARCHAR2(12);

BEGIN

v_eff_date := TO_CHAR(TO_DATE(eff_day,'yyyymmdd')-1,'yyyymmdd');

v_year := TO_NUMBER(SUBSTR(v_eff_date,1,4));

v_month := TO_NUMBER(SUBSTR(v_eff_date,5,2));

v_day := TO_NUMBER(SUBSTR(v_eff_date,7,2));

v_date := to_date(v_eff_date,'yyyymmdd'); -- 时段的起始时间

v_begin := 0;

FOR v_count IN 1..24   -- 一天24时段,循环24次

LOOP

INSERT INTO a_contentbyper_7_1(icp_id,channel_id,content_id,area_code,year, month,day,time_id,itemclass,itemvalue)

(SELECT /*+  INDEX(A I_CREATED_T_EVENT_T) index(a I_CREATED_T_EVENT_T) index(a I_EVENT_ID) use_nl(a c)*/ a.icp_account_id,-1,b.id,1,1,1,1,

1 - 1,2,sum(c.amount) FROM mid.event_t a,content_t b,mid.event_resimpact_t c

WHERE a.itemname = b.name AND c.event_id = a.id AND c.dest_res_name = 'RMB Yuan'

AND a.created_t >= TO_DATE('20030716','YYYYMMDD') AND a.created_t < TO_DATE('20030716','YYYYMMDD') + 1/24

GROUP BY a.icp_account_id,b.id);

insert into log_date values (sysdate,v_count);

COMMIT;

INSERT INTO a_contentbyper_7_1(icp_id,channel_id,content_id,area_code,year, month,day,time_id,itemclass,itemvalue)

(SELECT /*+  INDEX(A I_CREATED_T_EVENT_T) index(a I_CREATED_T_EVENT_T) index(a I_EVENT_ID) use_nl(a c)*/ a.icp_account_id,-1,b.id,1,1,1,1,

1 - 1,2,sum(c.amount) FROM mid.event_t a,content_t b,mid.event_resimpact_t c

WHERE a.itemname = b.name AND c.event_id = a.id AND c.dest_res_name = 'RMB Yuan'

AND a.created_t >= v_date AND a.created_t < v_date + 1/24

GROUP BY a.icp_account_id,b.id);

insert into log_date values(sysdate,v_count);

COMMIT;

v_date := v_date + 1/24;  -- 下一个时段的起始时间

END LOOP;

END;

/

上下两段代码,唯一的区别就是

a.created_t >= TO_DATE('20030716','YYYYMMDD') AND a.created_t < TO_DATE('20030716','YYYYMMDD') + 1/24

a.created_t >= v_date AND a.created_t < v_date + 1/24

但上面能使用索引,而下面的无法使用

v_date := to_date(v_eff_date,'yyyymmdd');

v_eff_date 是存储过程的输入参数

为什么 在存储过程中,变量替换无法使用索引?

谢谢!!

oracle的存储过程 替换,为什么在存储过程中,变量替换无法使用索引?相关推荐

  1. php 替换某一行,PHP中如何替换换行符?

    原标题:PHP中如何替换换行符? 最近在进行时,需要进行文件内容比对,为了排除换行符对文件内容的影响,总结了一下PHP中替换换行符的几种方法: 第一种:使用str_replace 来替换换行 $str ...

  2. php 替换某个字符,php中如何替换字符串中的某个字符-PHP问题

    正在PHP中,能够应用strtr()函数完成字符串交换. 起首咱们简略理解下strtr()函数的界说及语法. 语法: string strtr( string $str, string $from, ...

  3. 开发代码code中变量替换

    除了automake/autoconfig 之外,还有其他的替换方式. 参看vdsm https://github.com/oVirt/vdsm/blob/master/Makefile.am htt ...

  4. python中变量替换_如何在python类中替换变量?

    在类的方法内部,您可以通过在 self 上设置属性来操作属性,就像在 __init__ 方法中一样 . 您需要做的就是在阅读后设置这些属性 . 您可能希望 read() 方法也采用文件名: def r ...

  5. matlab 矩阵维度受限,matlab中变量问题——readonly 索引超出矩阵维度 workspacefunc 215...

    matlab程序运行过程中会出现如上提示,在网上检索未果,键入dbstop if error语句也无法定错误之处,就想这个错误不是一般的错误. 通过间隔打断点的方式最后定位错误为一句exist = f ...

  6. 接收sqlplus的值_ORACLE中的替换变量或替代变量:-------Oracle中sqlPlus -oracle 输出变量...

    Sqlplus是oracle提供的一个工具程序,既可以在oracle服务器使用,也可以在oracle客户端使用.在windows下分两种,sqlplus.exe是命令行程序,sqlplusw.exe是 ...

  7. java 不能执行mysql存储过程_java无法执行mysql中的函数及存储过程的.sql备份文件...

    需求:用java程序执行[包含数据&结构&函数&存储过程]的.sql备份文件 问题记录: 1.在执行完insert类型的语句后,中文内容会显示乱码. 解决:将mysql参数中c ...

  8. Oracle如何使用PL/SQL调试存储过程

    Oracle如何使用PL/SQL调试存储过程 PL/SQL中提供了[调试存储过程]的功能,可以完成存储过程的预编译与测试. 点击要调试的存储过程,右键选择TEST 如果需要查看变量,当然调试都需要.在 ...

  9. Oracle 存储过程,Hibernate 调用存储过程,JDBC调用存储过程,Oracle 动态SQL

    Oracle 存储过程学习 目录 Oracle 存储过程........................................................................ ...

最新文章

  1. 金山android 杀毒软件,金山手机卫士
  2. 管理到底是“管人”还是“管事”,百分之九十的人理解有问题
  3. Spring Hibernate Mybatis配置详解
  4. 转javascript图片预加载技术
  5. 【EventBus】事件通信框架 ( 发送事件 | 根据事件类型获取订阅者 | 调用订阅方法 )
  6. 数据结构和算法:第七章 排序
  7. 【数理知识】《随机过程》方兆本老师-第6章-鞅过程及其性质
  8. 使用Qt创建XML文档及XML文档的增删改
  9. pacman 查询_linux pacman常用命令
  10. JAVA笔记11__File类/File类作业/字节输出流、输入流/字符输出流、输入流/文件复制/转换流...
  11. Java8新特性--CompletableFuture
  12. mongodb morphia
  13. 中台之上(一):重视业务架构,不要让“业务的归业务、技术的归技术”
  14. 【值得收藏】10个实现炫酷UI前端效果的CSS生成工具
  15. ps蒙版上渐变工具的使用及抠图方法
  16. 泛微OA-流程存储数据说明(表单主表+明细表)
  17. IE浏览器地址栏输入中文乱码问题
  18. 如果们正预测基本面子
  19. Word排版如何快速自动生成目录,简单实用,一看就懂!
  20. 给所有的Control加两个属性,实现回车键自动跳转到下一个控件

热门文章

  1. [MicroPython]TPYBoard v102 CAN总线通信
  2. Linux常用命令——paste
  3. python开发一个区块链只需40多行
  4. 2月1日学习内容整理:算法
  5. 求两个数组的最长重复子数组 Maximum Length of Repeated Subarray
  6. 【互联网安全】DDoS攻防原理及实战
  7. textAngular字体依赖
  8. 数据上移下移简单的存储过程
  9. linux中建立网站服务器详解
  10. SDH点对点接入与MPLS有什么区别?——Vecloud