oracle 存储过程创建表分区
oracle 存储过程创建表分区 Oracle 存储过程 CREATE OR REPLACE PROCEDURE BIP_MMS_PARTITION_PROC AS v_Mms_Task_Tab VARCHAR2(50); --表名 v_Mms_Content_Tab VARCHAR2(50); v_Mms_User_Tab VARCHAR2(50); v_TableSpace VARCHAR2(20); --表空间 v_PartPreFl
oracle 存储过程创建表分区Oracle 存储过程
CREATE OR REPLACE PROCEDURE BIP_MMS_PARTITION_PROC AS v_Mms_Task_Tab VARCHAR2(50); --表名 v_Mms_Content_Tab VARCHAR2(50); v_Mms_User_Tab VARCHAR2(50); v_TableSpace VARCHAR2(20); --表空间 v_PartPreFlag VARCHAR2(50); --分区名标识 v_SqlCursor NUMBER; --游标 v_SqlExec VARCHAR2(2000); --执行语句 v_PartPreDate VARCHAR2(20); --分区日期 v_RangeValue NUMBER; v_RangeDate NUMBER; v_Rows NUMBER(30) := 0; v_Num NUMBER(30) := 0; vErrInfo VARCHAR2(200); p_DateFrom NUMBER; p_PartNum NUMBER; p_Range NUMBER; BEGIN v_Mms_Task_Tab := 'BIP_MMS_MT_TASK_LOG_TAB_TEST'; v_Mms_Content_Tab := 'BIP_MMS_MT_CONTENT_TAB_TEST'; v_Mms_User_Tab := 'BIP_MMS_MT_USER_LOG_TAB_TEST'; -- 读取配置参数 BEGIN SELECT TO_NUMBER(VALUE) INTO p_DateFrom FROM BIP_OTHERS_PROPERTIES_TAB WHERE NAME = 'p_DateFrom'; SELECT TO_NUMBER(VALUE) INTO p_PartNum FROM BIP_OTHERS_PROPERTIES_TAB WHERE NAME = 'p_PartNum'; SELECT TO_NUMBER(VALUE) INTO p_Range FROM BIP_OTHERS_PROPERTIES_TAB WHERE NAME = 'p_Range'; EXCEPTION WHEN OTHERS THEN BEGIN p_DateFrom := 0; p_PartNum := 1; p_Range := 180; END; END; --记录存储过程添加分区 INSERT INTO BIP_LOG_STAT_EXEC_TAB VALUES (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'), 'BIP_MMS_PARTITION_PROC_ADD', 'BEGIN'); COMMIT; --ADD PARTITION FOR i IN 1 .. p_PartNum LOOP --BIP_MMS_MT_CONTENT_TAB 添加分区 v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD'); dbms_output.put_line(v_PartPreDate); v_Num := 0; v_TableSpace := 'BIP_MMS_TS_TEST'; v_PartPreFlag := 'MMS_MT_CONTENT'; SELECT COUNT(*) INTO v_Num FROM user_tab_partitions WHERE table_name = v_Mms_Content_Tab AND SUBSTR(partition_name, 16, 8) = v_PartPreDate; IF v_Num < 1 THEN v_RangeDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD'); v_RangeValue := v_RangeDate || '240000'; dbms_output.put_line(v_RangeValue); v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab || ' ADD PARTITION ' || v_PartPreFlag || '_' || v_PartPreDate || ' VALUES LESS THAN(''' || v_RangeValue || ''') TABLESPACE ' || v_TableSpace; dbms_output.put_line(v_SqlExec); v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); END IF; --BIP_MMS_MT_TASK_LOG_TAB_TEST 添加分区 v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD'); v_Num := 0; v_TableSpace := 'BIP_MMS_TS_TEST'; v_PartPreFlag := 'MMS_MT_TASK_LOG'; SELECT COUNT(*) INTO v_Num FROM user_tab_partitions WHERE table_name = v_Mms_Task_Tab AND SUBSTR(partition_name, 17, 8) = v_PartPreDate; IF v_Num < 1 THEN v_RangeDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD'); v_RangeValue := v_RangeDate || '240000'; v_SqlExec := 'ALTER TABLE ' || v_Mms_Task_Tab || ' ADD PARTITION ' || v_PartPreFlag || '_' || v_PartPreDate || ' VALUES LESS THAN(''' || v_RangeValue || ''') TABLESPACE ' || v_TableSpace; dbms_output.put_line(v_SqlExec); v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); END IF; --BIP_MMS_MT_USER_LOG_TAB_TEST 添加分区 v_PartPreDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD'); v_Num := 0; v_TableSpace := 'BIP_MMS_TS_TEST'; v_PartPreFlag := 'MMS_MT_USER_LOG'; SELECT COUNT(*) INTO v_Num FROM user_tab_partitions WHERE table_name = v_Mms_User_Tab AND SUBSTR(partition_name, 17, 8) = v_PartPreDate; IF v_Num < 1 THEN v_RangeDate := TO_CHAR(SYSDATE + p_DateFrom + i, 'YYYYMMDD'); v_RangeValue := v_RangeDate || '240000'; v_SqlExec := 'ALTER TABLE ' || v_Mms_User_Tab || ' ADD PARTITION ' || v_PartPreFlag || '_' || v_PartPreDate || ' VALUES LESS THAN(''' || v_RangeValue || ''') TABLESPACE ' || v_TableSpace; dbms_output.put_line(v_SqlExec); v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); END IF; END LOOP; COMMIT; INSERT INTO BIP_LOG_STAT_EXEC_TAB VALUES (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'), 'BIP_MMS_PARTITION_PROC_ADD', 'END'); COMMIT; --DELETE PARTITION INSERT INTO BIP_LOG_STAT_EXEC_TAB VALUES (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'), 'BIP_MMS_PARTITION_PROC_DEL', 'BEGIN'); COMMIT; BEGIN v_PartPreFlag := 'MMS_MT_CONTENT' || '_' || TO_CHAR(SYSDATE - p_Range, 'yyyymmdd'); dbms_output.put_line(v_PartPreFlag); v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab || ' TRUNCATE PARTITION ' || v_PartPreFlag; dbms_output.put_line(v_SqlExec); v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); dbms_output.put_line(v_PartPreFlag || ' truncated'); v_SqlExec := 'ALTER TABLE ' || v_Mms_Content_Tab || ' DROP PARTITION ' || v_PartPreFlag; dbms_output.put_line(v_SqlExec); v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); dbms_output.put_line(v_PartPreFlag || ' dropped'); END; BEGIN v_PartPreFlag := 'MMS_MT_TASK_LOG' || '_' || TO_CHAR(SYSDATE - p_Range, 'yyyymmdd'); dbms_output.put_line(v_PartPreFlag); v_SqlExec := 'ALTER TABLE ' || v_Mms_Task_Tab || ' TRUNCATE PARTITION ' || v_PartPreFlag; dbms_output.put_line(v_SqlExec); v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); dbms_output.put_line(v_PartPreFlag || ' truncated'); v_SqlExec := 'ALTER TABLE ' || v_Mms_Task_Tab || ' DROP PARTITION ' || v_PartPreFlag; v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); dbms_output.put_line(v_PartPreFlag || ' dropped'); END; BEGIN v_PartPreFlag := 'MMS_MT_USER_LOG' || '_' || TO_CHAR(SYSDATE - p_Range, 'yyyymmdd'); dbms_output.put_line(v_PartPreFlag); v_SqlExec := 'ALTER TABLE ' || v_Mms_User_Tab || ' TRUNCATE PARTITION ' || v_PartPreFlag; dbms_output.put_line(v_SqlExec); v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); dbms_output.put_line(v_PartPreFlag || ' truncated'); v_SqlExec := 'ALTER TABLE ' || v_Mms_User_Tab || ' DROP PARTITION ' || v_PartPreFlag; v_SqlCursor := DBMS_SQL.OPEN_CURSOR; DBMS_SQL.PARSE(v_SqlCursor, v_SqlExec, DBMS_SQL.NATIVE); v_Rows := DBMS_SQL.EXECUTE(v_SqlCursor); DBMS_SQL.CLOSE_CURSOR(v_SqlCursor); dbms_output.put_line(v_PartPreFlag || ' dropped'); END; COMMIT; INSERT INTO BIP_LOG_STAT_EXEC_TAB VALUES (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'), 'BIP_MMS_PARTITION_PROC_DEL', 'END'); COMMIT; EXCEPTION WHEN OTHERS THEN BEGIN ROLLBACK; dbms_output.put_line(TO_CHAR(SQLCODE)); vErrInfo := SUBSTR(SQLERRM, 1, 200); dbms_output.put_line(TO_CHAR(vErrInfo)); INSERT INTO BIP_LOG_STAT_EXEC_TAB VALUES (TO_CHAR(SYSDATE, 'yyyymmddhh24miss'), 'BIP_MMS_PARTITION_PROC_ERROR', vErrInfo); COMMIT; END; end bip_mms_partition_proc;

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Tempoh pengekalan log pangkalan data Oracle bergantung pada jenis log dan konfigurasi, termasuk: Buat semula log: ditentukan oleh saiz maksimum yang dikonfigurasikan dengan parameter "LOG_ARCHIVE_DEST". Log buat semula yang diarkibkan: Ditentukan oleh saiz maksimum yang dikonfigurasikan oleh parameter "DB_RECOVERY_FILE_DEST_SIZE". Log buat semula dalam talian: tidak diarkibkan, hilang apabila pangkalan data dimulakan semula dan tempoh pengekalan adalah konsisten dengan masa berjalan contoh. Log audit: Dikonfigurasikan oleh parameter "AUDIT_TRAIL", dikekalkan selama 30 hari secara lalai.

Urutan permulaan pangkalan data Oracle ialah: 1. Semak prasyarat 2. Mulakan pendengar 3. Mulakan contoh pangkalan data 5. Sambungkan ke pangkalan data; . Dayakan perkhidmatan (jika perlu );

Jumlah memori yang diperlukan oleh Oracle bergantung pada saiz pangkalan data, tahap aktiviti dan tahap prestasi yang diperlukan: untuk menyimpan penimbal data, penimbal indeks, melaksanakan pernyataan SQL dan mengurus cache kamus data. Jumlah yang tepat dipengaruhi oleh saiz pangkalan data, tahap aktiviti dan tahap prestasi yang diperlukan. Amalan terbaik termasuk menetapkan saiz SGA yang sesuai, saiz komponen SGA, menggunakan AMM dan memantau penggunaan memori.

Untuk mencari bilangan kemunculan aksara dalam Oracle, lakukan langkah-langkah berikut: Dapatkan jumlah panjang rentetan Dapatkan panjang subrentetan di mana aksara berlaku; daripada jumlah panjang.

Keperluan konfigurasi perkakasan pelayan pangkalan data Oracle: Pemproses: berbilang teras, dengan frekuensi utama sekurang-kurangnya 2.5 GHz Untuk pangkalan data yang besar, 32 teras atau lebih disyorkan. Memori: Sekurang-kurangnya 8GB untuk pangkalan data kecil, 16-64GB untuk saiz sederhana, sehingga 512GB atau lebih untuk pangkalan data yang besar atau beban kerja yang berat. Storan: Cakera SSD atau NVMe, tatasusunan RAID untuk lebihan dan prestasi. Rangkaian: Rangkaian berkelajuan tinggi (10GbE atau lebih tinggi), kad rangkaian khusus, rangkaian kependaman rendah. Lain-lain: Bekalan kuasa yang stabil, komponen berlebihan, sistem pengendalian dan perisian yang serasi, pelesapan haba dan sistem penyejukan.

Oracle boleh membaca fail dbf melalui langkah-langkah berikut: buat jadual luaran dan rujuk fail dbf untuk mendapatkan semula data yang diimport ke dalam jadual Oracle;

Jumlah memori yang diperlukan untuk pangkalan data Oracle bergantung pada saiz pangkalan data, jenis beban kerja dan bilangan pengguna serentak. Cadangan am: Pangkalan data kecil: 16-32 GB, Pangkalan data sederhana: 32-64 GB, Pangkalan data besar: 64 GB atau lebih. Faktor lain yang perlu dipertimbangkan termasuk versi pangkalan data, pilihan pengoptimuman memori, virtualisasi dan amalan terbaik (pantau penggunaan memori, laraskan peruntukan).

Untuk mencipta tugas berjadual dalam Oracle yang dilaksanakan sekali sehari, anda perlu melakukan tiga langkah berikut: Buat kerja. Tambahkan subkerja pada kerja dan tetapkan ungkapan jadualnya kepada "INTERVAL 1 HARI". Dayakan kerja.
