คำถามติดแท็ก plpgsql

10
การตัดทอนตารางทั้งหมดในฐานข้อมูล Postgres
ฉันต้องลบข้อมูลทั้งหมดออกจากฐานข้อมูล PostgreSQL เป็นประจำก่อนทำการสร้างใหม่ ฉันจะทำสิ่งนี้โดยตรงใน SQL ได้อย่างไร ในขณะที่ฉันจัดการเพื่อให้มากับคำสั่ง SQL ที่คืนคำสั่งทั้งหมดที่ฉันต้องดำเนินการ: SELECT 'TRUNCATE TABLE ' || tablename || ';' FROM pg_tables WHERE tableowner='MYUSER'; แต่ฉันไม่เห็นวิธีเรียกใช้งานโดยทางโปรแกรมเมื่อมี

5
เก็บผลลัพธ์การสืบค้นในตัวแปรโดยใช้ใน PL / pgSQL
วิธีกำหนดผลลัพธ์ของแบบสอบถามให้กับตัวแปรใน PL / pgSQL ซึ่งเป็นภาษาขั้นตอนของ PostgreSQL ฉันมีฟังก์ชั่น: CREATE OR REPLACE FUNCTION test(x numeric) RETURNS character varying AS $BODY$ DECLARE name character varying(255); begin name ='SELECT name FROM test_table where id='||x; if(name='test')then --do somthing else --do the else part end if; end; return -- return my process result here $BODY$ LANGUAGE …

2
วิธีสร้างฟังก์ชันที่ไม่คืนค่าอะไร
ฉันต้องการเขียนฟังก์ชันด้วยpl/pgsql. ฉันใช้PostgresEnterprise Manager v3และใช้เชลล์เพื่อสร้างฟังก์ชัน แต่ในเชลล์ฉันต้องกำหนดประเภทผลตอบแทน ถ้าฉันไม่กำหนดประเภทการส่งคืนฉันจะไม่สามารถสร้างฟังก์ชันได้ จะสร้างฟังก์ชันที่ไม่มีผลตอบแทนได้อย่างไรเช่น Function ที่สร้างตารางใหม่

2
จะส่งคืนผลลัพธ์ของ SELECT ภายในฟังก์ชันใน PostgreSQL ได้อย่างไร?
ฉันมีฟังก์ชันนี้ใน PostgreSQL แต่ฉันไม่รู้ว่าจะส่งคืนผลลัพธ์ของแบบสอบถามอย่างไร: CREATE OR REPLACE FUNCTION wordFrequency(maxTokens INTEGER) RETURNS SETOF RECORD AS $$ BEGIN SELECT text, count(*), 100 / maxTokens * count(*) FROM ( SELECT text FROM token WHERE chartype = 'ALPHABETIC' LIMIT maxTokens ) as tokens GROUP BY text ORDER BY count DESC END $$ LANGUAGE plpgsql; แต่ฉันไม่รู้ว่าจะส่งคืนผลลัพธ์ของแบบสอบถามภายในฟังก์ชัน …

2
'$$' ใช้สำหรับอะไรใน PL / pgSQL
เป็นใหม่สำหรับ PL / pgSQL ความหมายของเครื่องหมายดอลลาร์คู่ในฟังก์ชันนี้คืออะไร : CREATE OR REPLACE FUNCTION check_phone_number(text) RETURNS boolean AS $$ BEGIN IF NOT $1 ~ e'^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$' THEN RAISE EXCEPTION 'Wrong formated string "%". Expected format is +999 999'; END IF; RETURN true; END; $$ LANGUAGE plpgsql STRICT IMMUTABLE; ฉันคาดเดาว่าในRETURNS boolean AS $$, …

2
จัดเก็บผลลัพธ์ของแบบสอบถามที่เลือกไว้ในอาร์เรย์เดียวใน postgres
รหัสของฉันคือ: SELECT column_name FROM information.SCHEMA.columns WHERE table_name = 'aean' aeanก็จะส่งกลับชื่อคอลัมน์ของตาราง ตอนนี้ฉันได้ประกาศอาร์เรย์แล้ว: DECLARE colnames text[] ฉันจะจัดเก็บเอาต์พุตของ Select ในอาร์เรย์ colnames ได้อย่างไร จำเป็นต้องเริ่มต้นชื่อ colnames หรือไม่?

8
ชื่อตารางเป็นพารามิเตอร์ฟังก์ชัน PostgreSQL
ฉันต้องการส่งชื่อตารางเป็นพารามิเตอร์ในฟังก์ชัน Postgres ฉันลองใช้รหัสนี้: CREATE OR REPLACE FUNCTION some_f(param character varying) RETURNS integer AS $$ BEGIN IF EXISTS (select * from quote_ident($1) where quote_ident($1).id=1) THEN return 1; END IF; return 0; END; $$ LANGUAGE plpgsql; select some_f('table_name'); และฉันได้รับสิ่งนี้: ERROR: syntax error at or near "." LINE 4: ...elect * from quote_ident($1) …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.