Ana*_*man 2 sql oracle dynamic-sql oracle11g
我有一个SQL查询,我想动态指定列的名称.
假设我有一个名为的表TABLE_A,它有一个名称列ID.我想知道我是否可以这样做:
SELECT (SELECT 'ID'
FROM DUAL)
FROM TABLE_A
Run Code Online (Sandbox Code Playgroud)
显然这是不可能的.有更好的方法吗?
SQL不支持动态列或表名 - 您需要使用动态SQL来获得所需的功能.动态SQL意味着在将字符串(包含查询)提交到数据库以进行解释之前,根据需要构造字符串.
大多数数据库都支持动态SQL,但语法通常非常不同.Oracle提供:
EXECUTE IMMEDIATE 为免我们忘记Little Bobby Tables,动态SQL增加了SQL注入攻击的风险......