【发布时间】:2021-05-09 10:15:19
【问题描述】:
我有一个函数,我希望能够在 Postgres 函数中使用文本变量作为字段名称。
DECLARE
_currentEmployee text;
_myCount integer;
BEGIN
FOR _record IN
SELECT ...
LOOP
_currentEmployee = _record.name
_myCount = (SELECT count(*) FROM tblTraining
WHERE tblTraining._currentEmployee = 4);
If _mycount = 0 ...
END LOOP;
基本上,检查每个员工的培训记录是例行公事。表架构有明显的问题,因为员工都作为列输入到培训表中,而不是每行中的规范化 ID,但我必须使用这里的内容。
每当我运行该函数时,它都会按字面意思对待_currentEmployee,而不是用字段名称替换它并正确处理。我得到了错误:
_currentlEmployee is not a field of tblTraining
建议?
【问题讨论】:
-
请始终提供完整函数定义,包括标题和语言定义(即使它当前不工作)。还有你的 Postgres 版本。
标签: function postgresql plpgsql dynamic-sql