为啥要用@?

我的select 后面的字段用逗号分隔了:

然后get了一个错:当用转义符时,所有主变量都得用@转义。

为啥呢,因为新旧SQL语法它不一样。
把新旧两种语法混合在一起就会有语法错误。
如果你用逗号分隔字段,那就是新open sql那主变量就得用@转义。
就是变量啊,工作区间啊,内表啊这些本地变量,如果逻辑用新SQL就得用@ 。用@ 来区分本地变量和外部变量。这个本地和外地我觉得就是方法内的变量和类的变量。但是也极大可能不是这个意思。

那么啥是新open SQL?我查了一下,发现它不就是和Oracle的SQL语句更接近了,有些功能可以用了。而且说为了代码下移做了优化啥的,具体不知道。来看看例子:
*20220608 就是HANA的SQL语法

文章目录

  • 1. 用@转义

1. 用@转义


这个也就是个HANA和ABAP的变量定义不一样了。
如果用ABAP的变量定义,那么得统统定义一遍,但是这里对于内表的定义就只用@DATA,对于工作区间的定义就只是DATA了:

在HANA里面语法就直接变成了:
减少了很多条定义语句。

用常量检查,看是否存在条目。
这个ABAP_TRUE是个常量。类型boolean, 值X。
这个并没有去查啥,只是确定了matnr = 112的这条存在。这个常量值只为了确定这条。

这种明显Oracle的加减乘除语句也可以用了。

合并两列为一列作为KEY这个列名。新表也是只有Key这一列。一切向Oracle靠拢。

case when then的语句也能在select里面用了,给个列别名material_type. 这个case里的列分类最后放到material_type里了。直接在数据库层给你搞好了分类了。不用哼哧哼哧loop读表再改了。条条大路通罗马啊。

以下把search_term改成小写,还前后加了%通配符,为了能跟LIKE一起用。

还有好多其他功能,感觉要重看一遍Oracle SQL语句。

new open SQL ABAP语法错误,逗号和转义符变量 when escaped, all host variables must be escaped using@相关推荐

  1. SQL语句like子句中的转义符

    如果想在SQL LIKE里查询有下划线'_'或是'%'等值的记录,直接写成like 'XXX_XX',则会把'_'当成是like的通配符.SQL里提供了 escape子句来处理这种情况,escape可 ...

  2. MySQLSyntaxErrorException sql语句语法错误

    今天在写sql的时候一直报错,反复检查就是找不出毛病,后来折腾了N久,终于发现是少写了引号, tt.tag_name as tagTwoList.tag_name 应该写作 tt.tag_name a ...

  3. System.Data.SqlClient.SqlException:“ ',' 附近有语法错误。必须声明标量变量 @Password。”

    前言: 七层登录中遇到的问题,几乎都是通过别人的办法一下子就解决掉了!最后遇到的这个问题,卡了我3个番茄! 过程: 1 这里说明SQL语句出了问题 2 找到了问题原因,这里的参数名字多写了一个标点,导 ...

  4. JS基础语法(02)-JS的转义符

    转义符: \ 改变原来符号的作用就叫转义符 /*** 转义符: `\` 改变原来符号的作用就叫转义符* \" :输出双引号* \t:水平制表符,说人话就是多打几个空格* \n:换行符* \\ ...

  5. mysql 占位符 出错_占位符报语法错误

    新增和更新方法类里面的占位符能够跑起来,但是删除和查询单个女神里面的占位符就会报语法错误,将占位符手动改为具体整型数字就可以正确运行. 以下是部分源码.//删除功能代码块 public void de ...

  6. sql server 数据库 ' ' 附近有语法错误

    昨天做项目时候,遇到标题的问题,代码跟踪把sql 语句 复制出来在数据库执行不了, 然后重新写个一模一样的,然后在 赋值到代码中,还是同样的错误, 就是不知道哪里出现了错误,最后 把 sql 语句写成 ...

  7. mysql标记上具有语法错误_ProgrammingError:(1064,'您的SQL语法有错误;请查看与MySQL服务器版本相对应的手册以获得正确的语法...

    我正在用python编写一个简单的爬行程序.所以,我用了MySQL和Python.但当我执行这个简单的程序时,会出现一个错误.然后,从web上爬网的内容不会在MySQL表上更新.此错误消息显示编程错误 ...

  8. mysql语法错误文件_使用logstash同步MySQL的数据时,在jdbc查询sql文件时报sql语法错误,sql文件是navicat生成的...

    使用logstash同步MySQL的数据时,在jdbc查询sql文件时报sql语法错误,并且错误总是near在第1行,sql文件的编码是utf8mb64 ,不知道是否是编码问题 logstash配置j ...

  9. MyBatis引起的SQL语法错误

    当我们在使用MyBatis框架时,有时会报SQL语法错误,例如这样 这时我们去检查xml文件里面的SQL语句,也没发现什么错误啊,这个时候你就应该想到是不是由MyBatis这个框架引起的了,因为MyB ...

最新文章

  1. 基于C++Opencv的傅里叶变换代码
  2. 为什么2G/3G和AI擦不出火花?他们用这篇论文告诉你答案
  3. 23 个优秀的机器学习训练公共数据集
  4. python与c语言有什么区别_Python和C语言的语法有什么不同?
  5. boost::filesystem模块打印文件状态的测试程序
  6. ubuntu切换python,以及切换python后相关包的管理
  7. VC++新建选择卡的解释
  8. TIMING_02 浅谈时序约束与时序分析
  9. nginx 的启动、停止与重启
  10. systemtap gui
  11. 面向对象——抽象基类
  12. ubuntu 配置ip地址命令
  13. Request的getParameter和getAttribute方法的区别
  14. Python——彩票(大乐透)模拟随机选号
  15. 项目-2.EVP论文与代码解析(Audio-Driven Emotional Video Portraits)
  16. 外贸常用术语_常用外贸术语大全
  17. fixed 和setprecision()的用法
  18. 老枪的59条制胜法则
  19. 论文写作基础之文献研究法与访谈法介绍
  20. 判断点是否在图形(矩形、椭圆、多边形)内的算法(一)

热门文章

  1. Mean-shift算法的直观理解
  2. 最适合深夜失眠听的歌,听了最容易入睡的歌曲推荐
  3. 从专辑光盘中导出音乐文件
  4. 科学记数法在c语言中表示方法,c/c++开发分享在C语言中阅读科学记数法
  5. centOS7.2.1511 bit64位 浏览器不能上网
  6. ubuntu安装chrome浏览器64位
  7. java书号属性,基于Java的ISBN书号查询示例代码-六派数据
  8. 把树莓派上chrome浏览器的缓存目录指定到SSD固态硬盘上
  9. Fruit Ripeness论文、代码和数据集汇总
  10. 阿里云为啥在云服务器市场输给腾讯云