Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

पीएल/एसक्यूएल में स्ट्रिंग को कैसे विभाजित करें?

इस लेख में, मैं एक फ़ंक्शन का उदाहरण दे रहा हूं जिसका उपयोग मैं ज्यादातर PL/SQL में एक स्ट्रिंग को विभाजित करने के लिए करता हूं। विशेष रूप से, जब मैं एक सीमांकित फ़ाइल आयात करने के लिए एक प्रोग्राम लिख रहा हूँ। यहां वह फ़ंक्शन और इसका उपयोग करने का एक उदाहरण दिया गया है।

एक स्ट्रिंग को विभाजित करने के लिए PL/SQL फ़ंक्शन

यह फ़ंक्शन चार पैरामीटर लेता है, और इन मापदंडों का विवरण इस प्रकार है:

  1. Source_String :स्ट्रिंग टू स्प्लिट
  2. फ़ील्ड_स्थिति :सीमांकक स्थिति
  3. अनटर्मिनेटेड :डिफ़ॉल्ट रूप से गलत, लेकिन अगर आप ट्रू पास करते हैं, तो यह स्ट्रिंग के अंत में निर्दिष्ट सीमांकक जोड़ देगा।
  4. सीमांकक :डिफ़ॉल्ट अल्पविराम है ',', आप कोई अन्य सीमांकक पास कर सकते हैं।
CREATE OR REPLACE FUNCTION GetString (
Source_string IN VARCHAR2,
Field_position IN NUMBER,
UnTerminated IN BOOLEAN DEFAULT FALSE,
Delimiter IN VARCHAR2 DEFAULT ',')
RETURN VARCHAR2
IS
iPtrEnd PLS_INTEGER := 0;
iPtrStart PLS_INTEGER := 0;
vcSourceStrCopy VARCHAR2 (4000) := Source_string;
BEGIN
IF UnTerminated
THEN
vcSourceStrCopy := vcSourceStrCopy || Delimiter;
END IF;

IF Field_Position > 1
THEN
iPtrStart :=
INSTR (vcSourceStrCopy,
Delimiter,
1,
Field_Position - 1)
+ LENGTH (Delimiter);
ELSE
iPtrStart := 1;
END IF;

iPtrEnd :=
INSTR (vcSourceStrCopy,
Delimiter,
1,
Field_Position);
RETURN SUBSTR (vcSourceStrCopy, iPtrStart, (iPtrEnd - iPtrStart));
END GetString;

उदाहरण:PL/SQL प्रोग्राम में इस फ़ंक्शन का उपयोग करें

SET SERVEROUTPUT ON;

DECLARE
   v_string      VARCHAR2 (1000) := 'Java|.Net|C|Oracle|PHP';

   TYPE t_string IS TABLE OF VARCHAR2 (1000)
                       INDEX BY BINARY_INTEGER;

   t_str_array   t_string;
BEGIN
   FOR i IN 1 .. 5
   LOOP
      t_str_array (i) :=
         getstring (v_string,
                    i,
                    TRUE,
                    '|');
   END LOOP;

   FOR j IN t_str_array.FIRST .. t_str_array.LAST
   LOOP
      DBMS_OUTPUT.put_Line (t_str_array (j));
   END LOOP;
END;
/

आउटपुट:

Java
.Net
C
Oracle
PHP
PL/SQL procedure successfully completed.

यह भी देखें:

  • Oracle 11g में PL/SQL का उपयोग करके JSON में डेटा निर्यात करें
  • कर्मचारी विवरण मुद्रित करने के लिए पीएल/एसक्यूएल कार्यक्रम

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जेपीए नामक क्वेरी के आईएन क्लॉज में गतिशील पैरामीटर का उपयोग कैसे करें?

  2. Oracle SQL PIVOT तालिका

  3. ओरेकल ईबीएस आर12 क्या है?

  4. कॉलम डेटाटाइप में BYTE और CHAR के बीच अंतर

  5. Oracle केस स्टेटमेंट युक्तियों और उदाहरणों के साथ समझाया गया