Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

SQL/Regex Challenge/Puzzle:Bagaimana cara menghapus komentar dari kode SQL (dengan menggunakan kueri SQL)?

Solusi

Teradata

with t (txt) as 
(
select     '
            select    /* comment /* yada yada yada /* / // bla bla bla  
                        1
                                    */ t1.i
                   ,''"SRC''''"''    as "This''is''the
                                ''source"

            from      t1 /* "Comment 2" - '' */ cross join t2 -- /* comment 3 */

            where     t2.v = ''/*DST"*
                                /'' -- comment 4'
)

select    regexp_replace (txt,'(''.*?''|".*?")|/\*.*?\*/|--.*?(?=[\r\n]|$)','\1',1,0,'n')     as clean_txt

from      t
;

Oracle

with t (txt) as 
(
select     '
            select    /* comment /* yada yada yada /* / // bla bla bla  
                        1
                                    */ t1.i
                   ,''"SRC''''"''    as "This''is''the
                                ''source"

            from      t1 /* "Comment 2" - '' */ cross join t2 -- /* comment 3 */

            where     t2.v = ''/*DST"*
                                /'' -- comment 4'

from        dual
)

select    regexp_replace (txt,'(''.*?''|".*?")|/\*.*?\*/|--.*?(?=$|\Z)','\1',1,0,'nm')

from      t
;

Hasil

            select     t1.i
                   ,'"SRC''"'    as "This'is'the
                                'source"

            from      t1  cross join t2 

            where     t2.v = '/*DST"*
                                /'



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Menggunakan berbeda dalam XMLAGG pada menduplikasi catatan

  2. Oracle SQL :stempel waktu di mana klausa

  3. Pastikan sesi php mendapatkan sesi Oracle yang sama saat menggunakan oci_pconnect

  4. Cara menulis kode di Oracle SQL (seperti 'CCYYMMDD' ke 102 )

  5. java.sql.SQLException:Pengecualian Io:Mendapat minus satu dari panggilan baca selama koneksi JDBC dengan Oracle