Loading [MathJax]/jax/output/CommonHTML/config.js
社区首页 >问答首页 >使用不同的参数运行两次oracle SQL脚本

使用不同的参数运行两次oracle SQL脚本
EN

Stack Overflow用户
提问于 2016-09-26 10:58:44
回答 2查看 1.4K关注 0票数 0

我在Oracle SQL developer中有一条SQL语句,它有一些变量:

代码语言:javascript
代码运行次数:0
复制
DEFINE custom_date = "'22-JUL-2016'" --run1
DEFINE custom_date = "'25-JUL-2016'" --run2

SELECT * FROM TABLE WHERE date=&custom_date

实际的查询要复杂得多,并且具有更多的变量,并且根据查询的结果创建新的表。如何创建脚本以执行两次查询,第一次使用第一行中设置的自定义日期,第二次使用第二行中设置的自定义日期。

EN

回答 2

Stack Overflow用户

发布于 2016-09-26 12:17:42

在Oracle中,&variable是一个“替代变量”,不是SQL的一部分;它是SQL*Plus脚本语言的一部分(被SQL Developer、Toad等所理解)。

更好的选择,也就是您所问的,是绑定变量。符号是:variable (用冒号:代替&),例如:custom_date

不同之处在于,在将查询发送到Oracle引擎之前,替代变量在前端应用程序(在您的例子中是SQL Developer )中被替换为它的值。绑定变量在运行时被替换。这有几个好处;讨论它们超出了您的问题的范围。

当您在SQL Developer中使用绑定变量执行查询时,程序将打开一个窗口,您可以在其中为绑定变量输入所需的值。你将不得不尝试一下,直到你可以让它工作(例如,我从来不记得日期必须用单引号还是不用引号)。祝好运!

票数 1
EN

Stack Overflow用户

发布于 2016-09-26 11:31:44

Define在TRANSACT SQL中使用。要执行此Oracle操作,您可以创建匿名PL/SQL块,如下所示:

代码语言:javascript
代码运行次数:0
复制
DECLARE
    p_param1 DATE;
    p_param2 NUMBER;
    CURSOR c_cur1(cp_param1 DATE,cp_param2 NUMBER)
    IS
        SELECT * FROM table WHERE date = cp_param1
    ;
BEGIN
    -- Execute it first time
    p_param1 := TO_DATE('2016-09-01','YYYY-MM-DD');
    FOR r IN c_cur1(p_param1)
    LOOP
        NULL;
    END LOOP;
    -- Execute it second time
    p_param1 := TO_DATE('2015-10-11','YYYY-MM-DD');
    FOR r IN c_cur1(p_param1)
    LOOP
        NULL;
    END LOOP;
END;

在其中,您可以创建带有参数的游标,并使用不同的参数执行两次。我不知道您为什么要执行这个查询两次,所以上面的脚本对结果没有任何作用,但它肯定应该使用不同的参数执行您的查询两次。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39701062

复制
相关文章
Oracle 性能相关常用脚本(SQL)
在缺乏的可视化工具来监控数据库性能的情形下,常用的脚本就派上用场了,下面提供几个关于Oracle性能相关的脚本供大家参考。以下脚本均在Oracle 10g测试通过,Oracle 11g可能要做相应调整。
Leshami
2018/08/13
9130
jenkins 参数化运行性能测试脚本
我们用jenkins做持续集成的时候,常常需要跑不同的脚本,传不同的参数。尤其是性能基准测试,线程数和持续时间需要实时调整以满足我们的测试需求。那么是不是需求变了,我们 就需要重新准备一套脚本?或者说我们需要去GUI界面下调整线程数,再重新上传脚本去集成呢?这样繁琐的操作会导致效率大幅降低。我们需要一个动态参数去实现工作效率最大化
飞天小子
2020/02/28
1.3K0
redis&nginx运行参数采集脚本
今天去客户那边做技术交流,客户希望能聊聊nginx和redis两个服务的核心参数及其相关注意事项。宣讲结束后,给客户写了两个小demo脚本,开放给各位,有需要的朋友可以在这个基础上自行集成和丰富。
IT运维技术圈
2023/03/17
3430
Linux/Unix shell 参数传递到SQL脚本
      在数据库运维的过程中,Shell 脚本在很大程度上为运维提供了极大的便利性。而shell 脚本参数作为变量传递给SQL以及SQL脚本也是DBA经常碰到的情形之一。本文主要讨论了如何将shell脚本的参数传递到SQL脚本之中并执行SQL查询。   有关shell与SQL之间的变量传递,请参考:  Linux/Unix shell sql 之间传递变量
Leshami
2018/08/14
2K0
sql oracle 注释导致最后一行被执行两次
---- 问题表象 命令行调用执行 1.sql /*修改内容:*** * 创建人:*** * 创建时间:* */ INSERT INTO "test"(test1,test2,test3,test4) VALUES('test','123',sysdate,'1234'); /*END*/ SQL> @/home/oracle/1.sql 1 row created. 1 row created. 一行insert语句被执行了两次 问题原因 sqlplus命令行中 /* 会被解释为 / / 是执行缓
葫芦
2021/01/12
9480
Oracle Sqlplus 运行环境 login.sql 设置[通俗易懂]
在运行Sqlplus时经常需要对运行环境进行设置,如果每次输入都要调整参数会比较麻烦,因此可以利用Oracle提供的glogin.sql、login.sql这两个文件对Sqlplus进行环境初始化。
全栈程序员站长
2022/09/13
1.6K0
Oracle Sqlplus 运行环境 login.sql 设置[通俗易懂]
使用Oracle SQL Developer 连接SQL Server
上次,将MySQL数据迁移到Oracle介绍了如何使用oracle sql developer连接mysql。同样,sql server的连接也比较相似。
williamwong
2018/07/24
3.3K0
使用Oracle SQL Developer 连接SQL Server
Oracle使用SQL分析锁
      可以利用SQL脚本检查实例中当前锁定情况。在数据库中第一次执行任何与锁定有关的SQL脚本之前,都需要首先运行catblock.sql脚本,该脚本位于$Oracle_HOME/rdbms/admin目录下。运行此脚本将创建几个与锁定有关的重要视图,如DBA_LOCKS、DBA_WAITERS、DBA_BLOCKERS等。
星哥玩云
2022/08/18
4060
Oracle SQL*Loader 使用简介
前面一文简单介绍了 Oracle 大数据量导出工具——sqluldr2 的安装与使用,sqluldr2 的诞生主要是用于将大批量的 Oracle 数据快速导出成 CSV/Text 文本格式,方便导入到其他数据库中,如今国产化进行的如火如荼,这个工具也是在国产数据库迁移中使用比较广泛的工具,值得大家去学习与使用,今天要说的是 Oracle 数据库自带的数据导入工具 SQL*Loader(sqlldr),只要你安装了 Oracle 数据库,那么这个工具就存在于 ORACLE_HOME/bin 目录下,它的功能是将从其他数据库中导出的 DAT/CSV/Text 文件加载到 Oracle 数据库中。数据泵导入需要 dmp 文件才可以,执行 insert 语句插入需要 .sql 文件才行,当然外部表的形式也可以,但外部表没法编辑且文件位于数据库外,不能 update 编辑数据则考虑 sqlldr 直接加载到 Oracle 数据库中更为方便。
JiekeXu之路
2023/09/06
6750
Oracle SQL*Loader 使用简介
使用Docker运行SQL Server
现在.net core已经跨平台了,大家也都用上了linux用上了docker。跟.net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始已经支持运行在docker上,也就说现在SQL Serer已经可以运行在linux下了。 下面在Ubuntu 16.4上演示安装并使用SQL Server 2019-CTP3.2
jwangkun
2021/12/23
3.5K0
使用Docker运行SQL Server
使用Docker运行SQL Server
现在.net core已经跨平台了,大家也都用上了linux用上了docker。跟.net经常配套使用的SQL SERVER以前一直是windows only,但是从SQL Server 2017开始已经支持运行在docker上,也就说现在SQL Serer已经可以运行在linux下了。 下面在Ubuntu 16.4上演示安装并使用SQL Server 2019-CTP3.2
MJ.Zhou
2019/07/28
1.7K0
Oracle 数据库直接执行本地sql文件、sql脚本实例演示
@ + sql 文件路径即可执行 sql 文件里的 sql 语句。 实例演示: 我要执行的 sql 文件路径是 C:\Users\Administrator\Desktop\delete.sql , 登录以后直接执行 @C:\Users\Administrator\Desktop\delete.sql 就好了。
小蓝枣
2020/09/24
2.5K0
使用COE脚本绑定SQL Profile
简单来说,就是将一个sql_id绑定好的plan_hash_value。如果没有使用到绑定变量,还需要把force_match设置为true。
Alfred Zhao
2019/05/24
1.1K0
使用Excel批量生成SQL脚本
我以为生活是猫吃鱼,狗吃肉,奥特曼打小怪兽。现实确是鼠整猫,羊耍狼,俩熊玩死光头强!这个世界这么疯狂,让我们如何坚强!
张树臣
2018/07/24
1.7K0
使用Excel批量生成SQL脚本
Oracle使用SQL传输表空间
源环境:RHEL 6.4 + Oracle 11.2.0.4 目的环境:RHEL 6.4 + Oracle 11.2.0.4 DG双机 要求:使用SQL传输表空间DBS_D_JINGYU从源环境到目的环境。
Alfred Zhao
2022/05/06
3810
使用Phoenix自带的工具执行sql脚本
phoenix自带了执行sql脚本的功能,这样方便了希望能够直接将一些关系型数据库的数据进行迁移到Hbase(也可以直接使用sqoop进行导入)。
Dlimeng
2023/06/29
3710
【ApiPost个人使用经验集】Apipost不同脚本的区别
Apipost官方链接:https://console.apipost.cn/register?utm_source=10006 在使用国产接口测试和接口文档生成工具Apipost的时候,在使用预/后
用户9610393
2022/05/12
3540
JVM的运行参数
jvm的标准参数,一般都是很稳定的,在未来的JVM版本中不会改变,可以使用 java -help 检索出所有的标准参数。
乐心湖
2021/01/18
1.4K0
JVM的运行参数
django ListView 获取 url 中的参数及根据参数使用不同的模板
from django.views import generic class IndexView(generic.ListView): template_name = 'lw-index-noslider.html' # 默认加载该模板文件 context_object_name = "articles" # 是数据库搜索出来的结果存放的变量名字,用于模板循环显示 paginate_by = paginate_by # 设置分页中每一页的记录数目 model = A
卓越笔记
2023/02/18
3.4K0
点击加载更多

相似问题

使用Ansible攻略运行Oracle SQL脚本

05

使用Oracle Application Express运行SQL脚本

10

Oracle SQL运行脚本

11

防止脚本使用相同的参数运行两次

10

从java运行oracle sql脚本

60
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文