gpt4 book ai didi

java - 使用 JavaPreparedStatements 设置列别名

转载 作者:行者123 更新时间:2023-12-02 07:16:47 25 4
gpt4 key购买 nike

大家好:) 我想用 Oracle 10g 动态命名我的列。这是我想做的:

SELECT 
NAME as "User.Name",
EMAIL as "User.Email.For.Criteria2.at." || CRITERIA
FROM CUSTOMERS
WHERE
CRITERIA = ?

或者:

SELECT 
NAME as "User.Name",
EMAIL as "User.Email.For.Criteria2.at." || ?
FROM CUSTOMERS
WHERE
CRITERIA = ?

使用一些 Java 循环遍历所有参数:(这已经在生产中)

ps.setString(i+1, parameterArray[i]);

我知道我可以用 Java 构建查询,但我的限制是要避免部署新的 Java 代码:/。不过我可以修改 SQL。仅使用 Oracle SQL 可以吗?

致以诚挚的问候

最佳答案

列名(别名)在 SQL 中是静态的,并且必须在解析时(绑定(bind)之前)知道。这使得一些工具可以在执行查询之前知道列数、列名和类型。

因此,您无法动态命名列别名。

<小时/>

另一种看待它的方式:绑定(bind)只能替换值。所以问问自己:我可以用常量表达式替换绑定(bind) 吗?,例如 'A'

  • 您可以替换 where 子句中的 ?
  • 您无法替换列别名中的 ?,这会产生无效的查询。

关于java - 使用 JavaPreparedStatements 设置列别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14834197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com