asp.net - Postgresql 函数抛出错误“错误:42702:列引用“lv”不明确”
问题描述
这是我在 postgresql 中使用的函数。我想要这个作为输出数据表。
RETURNS TABLE(lv integer, userid integer, ccode integer, cdate date, corp_id character varying)
我是 postgresql 的新手。请建议我如何解决此错误。如果需要任何进一步的信息来回答这个问题,请告诉我。先感谢您:)
-- FUNCTION: public.check_login(character varying, character varying)
-- DROP FUNCTION public.check_login(character varying, character varying);
CREATE OR REPLACE FUNCTION public.check_login(
username character varying,
password character varying)
RETURNS TABLE(lv integer, userid integer, ccode integer, cdate date, corp_id character varying)
LANGUAGE 'plpgsql'
COST 100
VOLATILE
ROWS 1000
AS $BODY$
begin
drop table if exists temp;
create table temp(lv int,userid int,ccode int,cdate date,corp_id varchar(20));
insert into temp(lv,userid,ccode,cdate,corp_id)
select lv,userid,code,CONVERT(varchar,cdate,103),corp_id from user_detail
where uname=username and pwd =Password and status='Active';
return query
select * from temp;
end;
$BODY$;
ALTER FUNCTION public.check_login(character varying, character varying)
OWNER TO postgres;
解决方案
歧义意味着查询引擎无法猜测在一个上下文中有两个同名对象时要操作的对象。代替
select lv,userid,code,CONVERT(varchar,cdate,103),corp_id from user_detail
where uname=username and pwd =Password and status='Active';
和
select ud.lv,ud.userid,ud.code,CONVERT(varchar,ud.cdate,103),ud.corp_id from user_detail AS ud
where ud.uname=username and ud.pwd=Password and ud.status='Active';
这将消除选择和返回结构中同名字段的歧义
推荐阅读
- python - 从 OpenStreetMap Overpass API 输出中提取 id(字典中的 python 列表)
- javascript - 文本输入上的 Select2 4.0.5 触发事件
- html - 如何在与项目符号项目相同的列表中拥有未项目符号的项目
- unicode - 如何在 freemarker 模板处理中转义 unicode 符号?
- html - 如何将文件引用显示为
Controller.ts 有:
img: File = someFile; // That I know is img some kind of img, png, jpg....
HTML:
如何在 img 标签中显示文件?
- r - 在 R 中的最后一个下划线处将一列分成两列
- sass - 只有一些 FontAwesome 5 图标没有出现,只是有时
- javascript - RxJs:基于计数的可变样本大小
- php - 如何将博客从非 WordPress 移动到 WordPress
- outlook - 如何生成 url 以将事件添加到 Outlook Web 客户端日历