【问题标题】:Dynamic insert fails in groovy SQLgroovy SQL 中的动态插入失败
【发布时间】:2021-08-14 15:54:20
【问题描述】:

我正在尝试在我的表格中插入一个动态输入。

def SYS_idValue = '9999999'

try{
    //Open connection to CCM
    connection = Sql.newInstance(CCMJdbcUrl, CCMUsername, CCMPassword, CCMJdbcDriver)

    def Mytable = 'INSERT INTO INTELTABLE (SYS_ID) VALUES (?)'
    connection.execute Mytable, [${SYS_idValue}]
       
    connection.close()
        
}  catch (Exception e) {
    println("Exception" + e)
    connection.close()
}

我正在阅读这份有用的文档: https://livebook.manning.com/book/groovy-in-action-second-edition/chapter-13/106

但是想不通。 到目前为止没有错误,但不工作

此方法有效,但我必须定义输入。

connection.execute """INSERT INTO INTELTABLE (SYS_ID)
                    values ('3333333')"""

有什么想法吗? 谢谢各位!

【问题讨论】:

  • 如果你真的没有得到任何错误,你应该好好看看你运行它的环境以及为什么会这样。如果您没有收到编译错误,则可能某些东西会默默地拒绝重新加载/使用该代码并吃掉错误。
  • 亲爱的@cfrick 是的,我会仔细研究我的调试器。感谢您的宝贵时间!

标签: java sql oracle groovy insert


【解决方案1】:

这东西甚至不会编译:

connection.execute Mytable, [${SYS_idValue}]

可能的选择是:

connection.execute Mytable, [ SYS_idValue ]
//or
connection.execute Mytable, [ "${SYS_idValue}" ]

【讨论】:

  • 第二个选项效果很好。现在我以这种方式又添加了一个输入! connection.execute Mytable, [ SYS_ID ] + [ firstname1 ] 非常感谢您抽出宝贵时间。!!
  • [SYS_ID, firstname1] 也应该这样做。
  • @cfrick 是的!谢谢
猜你喜欢
  • 2013-08-11
  • 1970-01-01
  • 2015-07-08
  • 1970-01-01
  • 2014-04-14
  • 2016-01-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多