ฉันได้เขียนขั้นตอนที่เรียกพารามิเตอร์ในแบบสอบถามแบบใช้เลือกข้อมูลแล้ว แต่มันไม่ทำงาน เมื่อฉันพิมพ์พารามิเตอร์นั้น มันทำงานได้ดี แต่เมื่อใช้แบบสอบถามแบบใช้เลือกข้อมูล มันไม่ทำงาน
ฉันใช้ Aginity workbench สำหรับ redshift เพื่อดำเนินการขั้นตอนที่เก็บไว้
CREATE or replace PROCEDURE get_tbl_name(IN tablename varchar, IN columnname VARCHAR, IN mindate varchar) AS $$
Declare
evalmindate varchar;
BEGIN
Raise info 'tablename = %, columnname = %, mindate = %', tablename,columnname,mindate;
if mindate is null then
select min(columnname) into evalmindate from tablename;
else
evalmindate=mindate;
end if;
END;
$$ LANGUAGE plpgsql;
Calling Proc:
call get_tbl_name('test_bq', 'date',NULL);
Output:
tablename = test_bq, columnname = date, mindate = <NULL>
Error Message
42601: syntax error at or near "$2"
จากเอาต์พุต เราสามารถเห็นพารามิเตอร์ภายในขั้นตอนเมื่อฉันพิมพ์ แต่ฉันไม่สามารถส่งพารามิเตอร์ไปยังแบบสอบถามแบบใช้เลือกข้อมูลได้ เนื่องจากเกิดข้อผิดพลาด กรุณาช่วยฉันด้วยเรื่องนี้
select min(columnname) into evalmindate from tablename;
ไม่ถูกต้อง คุณไม่ได้ใช้ตัวแปร จริงๆ แล้วคุณกำลังพยายามค้นหาcolumnname
ในตารางชื่อtablename
- person demircioglu   schedule 13.08.2019