Я совершенно новичок в постгрейсинге.Как часть моей работы, я получил ниже запрос на выполнение:
select external_source as DownloadUrl, external_status as
DownloadStatus, external_source as DownloadId from downloadrefresh
where subscriberid=@SubscriberId and
profileid=@ProfileId and channeltype=@ChannelType and
messagetypeid=@MessageType and LENGTH(external_source) > 0;
При запуске этого я получил ниже ошибку:
Ошибка SQL [42883]: ОШИБКА: оператор не существует:bigint = @ bigint Подсказка: ни один оператор не соответствует данному имени и типу аргумента.Возможно, вам придется добавить явные приведения типов.Позиция: 166
Я пытался с объявлением переменных, как показано ниже:
do $$
declare
SubscriberId int;
profileid int;
channeltype int;
messagetype int;
begin
select external_source as DownloadUrl,
external_status as DownloadStatus,
external_source as DownloadId
from downloadrefresh
where subscriberid=@SubscriberId and
profileid=@ProfileId and channeltype=@ChannelType and
messagetypeid=@MessageType and LENGTH(external_source) > 0;
end $$
Затем я получаю сообщение об ошибке ниже:
SQL Error [42702]: ERROR: column reference "subscriberid" is ambiguous
Detail: It could refer to either a PL/pgSQL variable or a table column.
Where: PL/pgSQL function inline_code_block line 9 at SQL statement
Может кто-нибудь, пожалуйста, помогите мне это,Как я могу бежать выше sql