Hello all :)我想用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吗?
祝你好运
答案 0 :(得分:2)
列名(别名)在SQL中是静态的,必须在分析时(绑定之前)知道。这允许一些工具在执行查询之前知道列的数量,它们的名称和类型。
因此,您无法动态命名列别名。
另一种看待它的方法:绑定只能替换值。所以问问自己:我可以用例如?
的常量表达式替换绑定'A'
吗?
?
?
,这会产生无效的查询。