Oracle动态SQL的拼装要领

Oracle的动态SQL语句用起来很方便,但其拼装过程太烦人。尤其在拼装语句中涉及到date类型字段时,拼装时要加to_char先转换成字符

oracle的动态sql语句用起来很方便,但其拼装过程太烦人。尤其在拼装语句中涉及到date类型字段时,拼装时要加to_char先转换成字符,,到了sql中又要使用to_date转成date类型和原字段再比较。

例如这样一个SQL:

select ‘=========  and (t.created>=to_date(”’||to_char(sysdate,’yyyy-mm-dd’)||”’,”yyyy-mm-dd”) AND t.created

它就是将sysdate转成字符串,再在生成的SQL中将字符串转换成date。

拼装出来的结果如下:

=========  and (t.created>=to_date(‘2012-11-08′,’yyyy-mm-dd’) AND t.created

字符串2012-11-08是我们使用to_char(sysdate,’yyyy-mm-dd’)生成的,语句中涉及到的每一个单引号,都要写成两个单引号来转义。

虽然拼装过程很烦人,但只要掌握好三点,就应能拼装出能用的SQL语句。

一,先确定目标。应保证拼装出来的SQL应该是什么样子,然后再去配置那个动态SQL

二,拼装SQL的时候,所有使用连接符||连接的对象都应是varchar2类型,这种类型的对象以单引号开头,以单引号结尾。数字会自动转,但date需要我们手工使用to_char函数转。

三,遇到有引号的,就写成两个单引号。

如 ‘ I am a SQL developer ” ‘||v_name||’ ” in China. telephone is ‘||v_number||’ .’ 

v_name是字符型的,所以拼装它是需要前后加单引号。

这种转换很烦人,但从10g开始有一个新功能,可以让人不用这么烦。它就是q'[xxxxx]’

示例如下:

select q'[ I’m a SQL developer ‘ ]’||to_char(sysdate,’yyyy’)||q'[‘ in China. telephone is ]’||1990||’.’  from dual; 

结果如下:

Result代码

I’m a SQL developer ‘2012’ in China. telephone is 1990. 

I’m使用一个单引号在q'[]’中就可以。
to_char(sysdate,’yyyy’)转成的是2012,前后是要加单引号的。所以在q'[xxx ‘]’的结尾加了一个单引号。
 这样就使得我们不用想以前那样使用 ””表示一个单引号了。

 简而言之,掌握这三点,就应该能拼装出能用的SQL。至于如果使用绑定变量输入输出,则需要使用into using关键字。 
 
set serveroutput on; 
 
declare
 incoming date:=sysdate-10;
 outgoing int;
 begin
 execute immediate ‘select COUNT(*) FROM user_objects where created > :incoming’ into outgoing using incoming ;
 dbms_output.put_line(‘ count is: ‘ || outgoing);
 end;
 / 

linux

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/1910452.html

(0)
上一篇 2025年2月22日 16:57:24
下一篇 2025年2月22日 16:57:49

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Java 函数调用与编译器指令是如何映射的?

    Java 函数调用与编译器指令的映射 Java 是一种编译型语言,这意味着在运行 Java 程序之前,它会被编译成字节码。字节码是一种平台无关的指令集,可以在任何支持 Java 虚拟机的 (JVM) 平台上运行。 函数调用 当 Java 程…

    2025年3月14日
    200
  • java怎么安装安装

    如何安装 Java?下载并安装 Java 开发工具包 (JDK);根据操作系统和功能要求选择合适的 JDK 版本;安装完成后,设置环境变量以设置 Java 的安装位置;使用命令 java -version 验证安装是否成功。 如何安装 Ja…

    2025年3月14日
    200
  • java源码怎么安装

    Java 源码安装分为以下步骤:安装 Java 开发工具包 (JDK);配置系统环境变量指向 JDK 安装目录;使用 javac 编译器编译 Java 源码;使用 java 命令运行编译后的 Java 程序。 Java 源码安装指南 安装 …

    2025年3月14日
    200
  • 怎么安装java 11

    Java 11 安装步骤:下载安装程序;运行安装程序;设置 JAVA_HOME 环境变量;添加 Java 到 PATH 环境变量;验证安装。 如何安装 Java 11 简介 Java 11 是 Java 平台的一个主版本,于 2018 年 …

    2025年3月14日
    200
  • 怎么安装java 18

    如何安装 Java 18?访问 Oracle Java 下载页面并选择与您的平台匹配的安装程序(Windows、macOS 或 Linux)。下载并运行安装程序,接受许可协议并选择安装目录。安装完成后,通过设置环境变量(可选)来轻松使用 J…

    2025年3月14日
    200
  • 要怎么安装好java

    安装 Java 的步骤:下载 Java 开发工具包 (JDK) 和 Java 运行时环境 (JRE),请确保与您的操作系统兼容。安装 Java 双击安装程序并按照提示进行操作。配置环境变量 (仅限 Windows):在系统变量中设置 JAV…

    2025年3月14日
    200
  • java标准版怎么安装

    要在 Windows、macOS 和 Linux 上安装 Java 标准版 (JDK),需要以下步骤:访问 Oracle JDK 下载页面并选择相应安装程序;在 Windows 中,按照提示安装并验证;在 macOS 中,安装 .dmg 文…

    2025年3月14日
    200
  • 安装java 怎么安装

    回答: 安装 Java 需要以下步骤:下载 Java 安装程序运行安装程序接受许可协议选择安装类型(建议:JRE 和 JDK)选择安装位置点击“安装”按钮安装完成后,点击“关闭”按钮(可选:设置 JAVA_HOME 环境变量)在命令行中验证…

    2025年3月14日
    200
  • win10安装怎么安装java

    在 Windows 10 上安装 Java 的步骤如下:下载 Java 安装程序运行安装程序并同意许可协议选择安装组件(JRE、JDK、源代码)选择安装路径(默认:C:Program FilesJavajdk-18.0.2)完成安装可选:配…

    2025年3月14日
    200
  • java程序怎么安装

    安装 Java 程序需要以下步骤:下载与操作系统和架构相符的 Java 开发工具包 (JDK)。安装 JDK 并按照屏幕提示进行操作。配置环境变量,包括 JAVA_HOME 和 Path。验证安装,键入命令 java -version 查看…

    2025年3月14日
    200

发表回复

登录后才能评论