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

कच्ची sql फ़ाइल से टिप्पणियों को कैसे साफ़ करें

sqlparse आज़माएं मॉड्यूल।

अपडेट किया गया उदाहरण:सम्मिलित मानों के अंदर टिप्पणियों को छोड़कर, और CREATE FUNCTION ब्लॉक के भीतर टिप्पणियों को छोड़कर . आप व्यवहार को ट्यून करने के लिए और अधिक बदलाव कर सकते हैं:

import sqlparse
from sqlparse import tokens

queries = '''
CREATE FUNCTION func1(a integer) RETURNS void
    LANGUAGE plpgsql
        AS $$
        BEGIN
                -- comment
       END;
       $$;
SELECT -- comment
* FROM -- comment
TABLE foo;
-- comment
INSERT INTO foo VALUES ('a -- foo bar');
INSERT INTO foo
VALUES ('
a 
-- foo bar'
);

'''

IGNORE = set(['CREATE FUNCTION',])  # extend this

def _filter(stmt, allow=0):
    ddl = [t for t in stmt.tokens if t.ttype in (tokens.DDL, tokens.Keyword)]
    start = ' '.join(d.value for d in ddl[:2])
    if ddl and start in IGNORE:
        allow = 1
    for tok in stmt.tokens:
        if allow or not isinstance(tok, sqlparse.sql.Comment):
            yield tok

for stmt in sqlparse.split(queries):
    sql = sqlparse.parse(stmt)[0]
    print sqlparse.sql.TokenList([t for t in _filter(sql)])

आउटपुट:

CREATE FUNCTION func1(a integer) RETURNS void
    LANGUAGE plpgsql
        AS $$
        BEGIN
                -- comment
       END;
       $$;

SELECT * FROM TABLE foo;

INSERT INTO foo VALUES ('a -- foo bar');

INSERT INTO foo
VALUES ('
a
-- foo bar'
);


  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. DBeaver और PostgreSQL में सीरियल डेटा प्रकार की समस्याएं

  3. PostgreSQL एएनएसआई, पायथन एसक्यूएल, यूटीएफ -8 'कोडेक बाइट 0xa0 को डीकोड नहीं कर सकता

  4. मैं एक नई स्थापना के बाद Postgresql में कैसे लॉगिन और प्रमाणित करूं?

  5. PgBouncer 1.7 - "पुनरुत्थान के बाद रंग बदलते हैं"