DataWorks中动态 SQL是什么?

DataWorks中动态 SQL是什么?

展开
收起
真的很搞笑 2023-05-25 11:57:43 296 分享 版权
1 条回答
写回答
取消 提交回答
  • 十年摸盘键,代码未曾试。 今日码示君,谁有上云事。

    动态SQL指的是根据不同的查询条件,生成不同的sql语句,

    静态SQL表示前期联编(early binding),即SQL语句在程序编译期间就已经确定,大多数的编译情况属于这种类型;

    动态SQL是后期联编(late binding),即SQL语句只有在运行阶段才能建立,例如当查询条件为用户输入时,那么Oracle的SQL引擎就无法在编译期对该程序语句进行确定,只能在用户输入一定的查询条件后才能提交给SQL引擎进行处理。

    所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程。

    动态SQL它一般是根据用户输入或外部条件动态组合的SQL语句块。动态SQL能灵活的发挥SQL强大的功能、方便的解决一些其它方法难以解决的问题。不过动态SQL有时候在执行性能(效率)上面不如静态SQL,而且使用不恰当,往往会在安全方面存在隐患(SQL 注入式攻击)。

    动态SQL可以通过EXECUTE 或SP_EXECUTESQL这两种方式来执行。

    动态SQL详见 官方中文文档:https://mybatis.org/mybatis-3/zh/dynamic-sql.html

    2023-05-25 14:41:27
    赞同 1 展开评论

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

还有其他疑问?
咨询AI助理