`
qiuguo0205
  • 浏览: 242465 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

groovy db GString 错误

阅读更多

下面是一段很简单的groovy显示某oracle数据库用户下所有表名的代码:

import groovy.sql.*;

db = Sql.newInstance(
		'jdbc:oracle:thin:@localhost:1521:orcl',
		'abc', 'abc', 'oracle.jdbc.driver.OracleDriver')

tablename = 'tab'
db.eachRow ("select tname from $tablename", {println it})

 

但是实际使用的时候会爆出这样的错误:

2011-5-11 12:21:55 groovy.sql.Sql eachRow
警告: Failed to execute: select tname from ? because: ORA-00903: invalid table name

Exception in thread "main" java.sql.SQLException: ORA-00903: invalid table name

	at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
      ......

 

这个错误的本质是因为使用的是GString,而不是String,只需要将最后一句改为

db.eachRow ("select tname from $tablename".toString(), {println it})
即可

 

实际上,使用GString所报的错误不只这一种,也有可能是“无效的列索引”等错误。不过只要记住写入sql的时候把它变为String而非GString即可。

 

 

 

 

分享到:
评论

相关推荐

    groovy-all-1.8.1.jar.zip

    5. GString:Groovy的GString允许在字符串中嵌入表达式,例如`"Name is ${name}"`,使得字符串处理更为方便。 6. 枚举和注解的简化:Groovy的枚举和注解创建也比Java更加直观和简洁。 7. 类型推断:Groovy编译器...

    Java调用Groovy,实时动态加载数据库groovy脚本

    1. 引入Groovy库:在Java项目中添加Groovy的相关依赖,通常是`groovy-all`,确保Java能够访问Groovy运行时环境。 2. 创建GroovyClassLoader:使用这个类加载器可以动态加载和执行Groovy脚本。它继承自Java的...

    groovy初学者的福音

    5. **GString与字符串操作**:Groovy的GString是一种可以包含表达式的字符串,它允许你在字符串中嵌入变量值。Groovy还提供了丰富的字符串操作方法,比如`tokenize`, `trim`, `split`等。 6. **集合操作**:Groovy...

    Groovy学习笔记 PDF版

    5. **GString(字符串插值)**:Groovy的GString允许在字符串中直接插入变量值,使得字符串的构建更加直观。 6. **内建的集合支持**:Groovy提供了丰富的集合操作,如map、filter、each等,使得处理数组和列表变得...

    groovy-binary-2.2.2.zip

    4. **GString**:Groovy的GString可以方便地进行字符串插值,类似于Ruby的字符串模板。 5. **GroovyShell和GroovyScriptEngine**:这些工具允许在运行时执行Groovy脚本,使得Groovy成为理想的脚本语言。 6. ** ...

    groovy经典入门

    4. **GString和字符串操作**:Groovy的GString可以包含表达式,如`${expression}`,这使得字符串插值变得简单。此外,Groovy提供了丰富的字符串方法,如`split()`, `trim()`, `contains()`等。 5. **闭包**:闭包是...

    Grails&Groovy学习资料

    4. GString:Groovy的GString(类似于Java的String)支持模板语法,使字符串拼接更直观。 5. 极简的语法:Groovy的语法比Java更加精简,例如,可以省略括号和分号。 Grails框架: Grails是建立在Groovy之上的全栈...

    groovy入门经典,groovyeclipse 插件

    Groovy还引入了GString,这是一种可变字符串,允许在字符串中嵌入表达式,如`${expression}`。此外,Groovy的运算符重载和元编程能力使代码更加简洁和动态。 在安装GroovyEclipse插件后,开发者可以通过Eclipse的...

    groovy-binary

    9. **GString**:Groovy的GString可以方便地进行字符串格式化,类似于Java的String.format()方法。 10. **元编程**:Groovy支持元编程,允许在运行时修改或扩展类的行为,提供了强大的灵活性。 在安装"groovy-...

    groovy in action 中文版 2017.11

    在字符串处理方面,Groovy引入了GString,这种字符串可以包含表达式,能够在运行时被评估。同时,Groovy还引入了对正则表达式的支持,使得文本模式匹配和处理更加方便。 在集合类型方面,Groovy支持使用范围...

    Groovy入门经典.pdf

    5. **GString**:Groovy的GString可以方便地进行字符串插值,类似模板引擎,使得动态构建字符串变得简单。 6. **Grails框架**:如果对Web开发感兴趣,Groovy的Grails框架是值得探索的。它是一个基于Groovy的全栈...

    Groovy in Action[文字版][中文]

    4. **GString与字符串模板**:Groovy的GString能够方便地进行字符串插值,它允许在字符串中嵌入表达式,使得输出动态内容变得更简单。 5. **Groovy Shell与 Grape**:Groovy Shell提供了一个交互式的环境来执行...

    Groovy in Action源代码

    4. **GString与模板引擎**:Groovy的GString能方便地进行字符串插值,源代码中可能会包含使用GString构建动态字符串的例子。同时,Groovy的模板引擎(如Freemarker或Groovy模板)用于生成HTML或其他格式的文本,是...

    groovy-docs-1.8.9.zip

    3. **GString**:Groovy的GString提供了一种更方便的方式来构造字符串,可以包含表达式,这比Java的字符串模板更灵活。 4. **GroovyShell和GroovyScriptEngine**:这两个类允许在运行时执行Groovy代码,是脚本语言...

    groovy学习

    - Groovy的GString(类似Java的String)支持表达式插入,使得字符串操作更加方便。 - 通过使用`@CompileStatic`注解,Groovy代码可以被静态类型检查,从而获得接近Java的性能。 2. **Groovy与Spring的整合**: -...

    groovy

    4. GString:类似于Java的字符串,但支持占位符表达式,使字符串操作更便捷。 5. 链式调用:对象属性和方法可以连续调用,如`object.property.method()`,增强了代码的可读性。 三、领域应用 1. 脚本和自动化:...

    Groovy轻松入门—搭建Groovy开发环境

    - **GString**:Groovy中的字符串可以使用`${expression}`内嵌表达式,例如`"Hello, ${name}"`。 - **方法默认参数和命名参数**:Groovy允许方法定义默认参数值,并通过键值对的方式调用方法。 - **元编程**:...

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本

    apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...

    apache-groovy-sdk-2.4.4

    8. **闭包和GString**:Groovy的闭包和GString是其简洁语法的关键元素,闭包提供了一种强大的函数式编程特性,而GString则简化了字符串插值操作。 9. **与Java的无缝集成**:Groovy可以直接调用Java库,Java代码也...

Global site tag (gtag.js) - Google Analytics