ये डॉलर चिह्न ($$
) का उपयोग डॉलर के उद्धरण . के लिए किया जाता है , जो कार्य परिभाषाओं के लिए किसी भी तरह से विशिष्ट नहीं है . इसका उपयोग SQL स्क्रिप्ट में कहीं भी स्ट्रिंग अक्षर (स्थिरांक) को संलग्न करने वाले सिंगल कोट्स को बदलने के लिए किया जा सकता है।
किसी फ़ंक्शन का शरीर ऐसा स्ट्रिंग शाब्दिक होता है। नेस्टेड सिंगल कोट्स (पुनरावर्ती) से बचने के लिए डॉलर-कोटिंग सिंगल कोट्स के लिए एक पोस्टग्रेएसक्यूएल-विशिष्ट विकल्प है। आप फ़ंक्शन बॉडी को सिंगल-कोट्स में भी संलग्न कर सकते हैं। लेकिन तब आपको शरीर के सभी एकल-उद्धरणों से बचना होगा:
CREATE OR REPLACE FUNCTION check_phone_number(text)
RETURNS boolean
LANGUAGE plpgsql STRICT IMMUTABLE AS
'
BEGIN
IF NOT $1 ~ e''^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$'' THEN
RAISE EXCEPTION ''Malformed string "%". Expected format is +999 999'';
END IF;
RETURN true;
END
';
यह इतना अच्छा विचार नहीं है। इसके बजाय डॉलर-उद्धरण का प्रयोग करें। अधिक विशेष रूप से, $$
. के बीच एक टोकन भी लगाएं प्रत्येक जोड़ी को अद्वितीय बनाने के लिए - आप फ़ंक्शन बॉडी के अंदर नेस्टेड डॉलर-कोट्स का उपयोग करना चाह सकते हैं। मैं वास्तव में बहुत कुछ करता हूं।
CREATE OR REPLACE FUNCTION check_phone_number(text)
RETURNS boolean
LANGUAGE plpgsql STRICT IMMUTABLE AS
$func$
BEGIN
...
END
$func$;
देखें:
- पोस्टग्रेएसक्यूएल में सिंगल कोट्स के साथ टेक्स्ट डालें
आपके दूसरे प्रश्न के अनुसार:CREATE FUNCTION
पर सबसे उत्कृष्ट मैनुअल पढ़ें अपने उदाहरण की अंतिम पंक्ति को समझने के लिए।