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

Cari string yang diberikan di semua bidang dari seluruh skema untuk Oracle

"ALL_TAB_COLUMNS " adalah systable, memiliki semua tipe data kolom tabel dll.

"USER_TAB_COLUMNS " adalah systable, memiliki semua tipe data kolom tabel dll (yang pemiliknya adalah pengguna saat ini). (Terima kasih Rene)

Contoh:

 SET SERVEROUTPUT ON SIZE 100000 -- maybe you have a lot of table and columns

    DECLARE
      matches INTEGER;
    BEGIN
      FOR columns IN (SELECT table_name, column_name FROM user_tab_columns where data_type = 'VARCHAR2') LOOP

        EXECUTE IMMEDIATE
          'SELECT COUNT(*) FROM '||t.table_name||' WHERE instr('||t.column_name||' , :1) > 0'
          INTO matches
          USING 'What you search';

        IF matches > 0 THEN
          dbms_output.put_line( t.table_name ||' '||t.column_name||' '||matches );
        END IF;

      END LOOP;

    END;
    /

kueri ini akan menampilkan nama_tabel '' nama_kolom'' dan menghitung, jika Anda memiliki nama kolom dan tabel standar, Anda dapat mengubah kueri sebagai IF kolom> 0 lalu tulis kueri UNION dalam lingkaran dan kembalikan kursor, atau kembalikan tabel,



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Prosedur PL/SQL:UPDATE nama huruf besar ke initcaps, dengan penanganan khusus untuk beberapa nilai

  2. sql (Oracle) untuk memilih 10 catatan pertama, lalu 10 berikutnya, dan seterusnya

  3. Dalam SQL bagaimana cara membuat kesalahan saat memperbarui nilai 'bukan nol' dalam tabel database

  4. Permintaan Oracle sederhana:literal tidak cocok dengan string format

  5. Kesalahan instalasi klien Oracle - jalur terlalu panjang