作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要有关我尝试创建的这个 oracle 函数的帮助。基本上我想要做的就是传入表的名称,并返回变量表名称 + '_ID' 列的最大值所以它看起来像这样 (tableName)_ID
这是我尝试过的(但我无法让它工作):
CREATE OR REPLACE FUNCTION RETURN_ID(tableName IN varchar2)
return int
IS
curResult varchar2;
cursor cur1 is
SELECT column_name
FROM all_tab_cols
WHERE table_name = tableName
AND column_name like '%_ID';
BEGIN
OPEN cur1;
FETCH cur1 INTO curResult;
CLOSE cur1;
SELECT MAX(curResult) AS MaxID
FROM tableName;
RETURN maxID;
END RETURN_ID;
最佳答案
替换
SELECT MAX(curResult) AS MaxID
FROM tableName;
与
execute immediate
'select max(' || curResult || ')' ||
' from ' || tableName
into MaxID;
每当您想要在 select 语句中动态更改表名或列名时,除了立即执行
语句之外,几乎没有其他方法。
关于sql - Oracle函数: How to pass a table name as parameter,并使用游标结果作为表名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22847162/
我是一名优秀的程序员,十分优秀!