使用Obclient执行SQL文件,如何在日志中打印实际传入SQL文件的参数值?

使用Obclient执行SQL文件,如何在日志中打印实际传入SQL文件的参数值?

2 个赞

请问您指的“在日志中打印实际传入的SQL文件的参数值”具体是指什么呢,能否举个具体的例子呢

2 个赞

比如我在SQL文件中的 where 条件中使用 where date=@qsh
然后使用 obclient 的 --init-command 传入 set @qsh=‘20230101’
如何在日志中打印出传入的20230101 ?

2 个赞

是打印在observer执行sql的内核日志还是你自己自定义一些日志文件呢

2 个赞

就是单纯把Obclient执行SQL脚本的时候的日志,重定向到文件中,以记录执行了哪些SQL,日志内容就是你SQL脚本中的SQL语句, 我 使用Obclient -v 的方式,无法将传入的变量打印出来,日志文件中显示的还是形参,而不是实际的值

2 个赞

要打印实际值,得等到sql拼接解析后了,目前的逻辑里是没有的

3 个赞

哦哦 好的 了解了 感谢您的答疑~

2 个赞

不客气[quote=“dev001, post:7, topic:35606365, full:true”]
哦哦 好的 了解了 感谢您的答疑~
[/quote]

2 个赞

大哥,比如我想执行一个批量插入数据的脚本,它可能有三四个参数是需要在脚本里编写传递的,那么编写脚本的时候也是用init-command吗,1个参数的话是set @first=1,那么多个参数呢?sqlplus的话就是直接用&来引用的,能请教一下obclient的是怎么写的吗?

1 个赞