कार्यकारी सारांश: PostgreSQL अद्भुत है, लेकिन हम इस तथ्य है कि यह क्रम तक PL/pgSQL कोड पर कई चेकों स्थगित की वजह से काम पर कई मुद्दों का सामना कर रहे । क्या इस संबंध में ओरेकल के पीएल/एसक्यूएल की तरह इसे बनाने का कोई तरीका है?PostgreSQL बनाम ओरेकल: "संकलन-टाइम" पी एल की जाँच/pgSQL
उदाहरण के लिए ...
किसी भी Oracle DB में इस को क्रियान्वित करने का प्रयास करें:
create function foo return number as
begin
select a from dual;
return a;
end;
ओरेकल तुरंत (यानी संकलन समय पर!) जवाब देंगे साथ:
[Error] ORA-00904: invalid identifier
अब PostgreSQL में अर्थात् समकक्ष चीज़ों को आजमाएं:
CREATE OR REPLACE FUNCTION public.foo()
RETURNS integer AS
$body$
BEGIN
select a;
return a;
END;
$body$
LANGUAGE plpgsql;
आप इसे देखेंगे - दुर्भाग्य से! - ठीक निष्पादित करें ... कोई त्रुटि रिपोर्ट नहीं की गई है।
लेकिन जब आप तो इस फ़ंक्शन को कॉल करने का प्रयास करें (यानी क्रम में) आप मिल जाएगा:
ERROR: column "a" does not exist
LINE 1: select a
वहाँ वाक्य रचना विश्लेषण करने के लिए PostgreSQL मजबूर करने के लिए एक रास्ता है और समारोह परिभाषा समय में जाँच - नहीं चलने के समय पर? हमारे पास काम पर विरासत पीएल/एसक्यूएल कोड है, जिसे हम PostgreSQL पर पोर्ट कर रहे हैं - लेकिन संकलन-समय चेक की कमी बहुत दर्दनाक है, हमें मैन्युअल काम करने के लिए मजबूर करना - यानी सभी कोड पथों का परीक्षण करने के लिए कोड लिखना कार्य/प्रक्रियाएं - जो ओरेकल में अन्यथा स्वचालित थीं।
परीक्षण के विषय पर, मैं मूल पोस्टर हेड तुरंत http://pgtap.org/ पर सुझाव दूंगा और अपना जीवन * अधिक * आसान बना दूंगा। –