Oracle中创建和删除临时表
CREATE GLOBAL TEMPORARY TABLE TABLENAME ( COL1 VARCHAR2(10), COL2 NUMBER ) ON COMMIT PRESERVE(DELETE) ROWS ; --O
CREATE GLOBAL TEMPORARY TABLE TABLENAME (
COL1 VARCHAR2(10),
COL2 NUMBER
) ON COMMIT PRESERVE(DELETE) ROWS ;
--ON COMMIT DELETE ROWS 说明临时表是事务指定,每次提交后Oracle将截断表(删除全部行)
---------------------------------------
在Oracle8i中,可以创建以下两种临时表:
1。会话特有的临时表
CREATE GLOBAL TEMPORARY
ON COMMIT PRESERVE ROWS;
2。事务特有的临时表
CREATE GLOBAL TEMPORARY
ON COMMIT DELETE ROWS;
CREATE GLOBAL TEMPORARY TABLE MyTempTable
所建的临时表虽然是存在的,但是你试一下insert 一条记录然后用别的连接登上去select,记录是空的,明白了吧。
下面两句话再贴一下:
--ON COMMIT DELETE ROWS 说明临敀?表是事务指定,每次提交后ORACLE将截断表(删除全部行)
--ON COMMIT PRESERVE ROWS 说明临时表是会话指定,当中断会话时ORACLE将截断表。
procedure 执行一系列的操作
package 可以在其中定义一些量、函数、过程等;
存储过程里不能直接使用DDL语句,,所以只能使用动态SQL语句来执行
create procedure pro
as
str varchar2(100);
begin
str := 'CREATE GLOBAL TEMPORARY TABLE admin_work_area
(startdate DATE,
enddate DATE,
class CHAR(20))
ON COMMIT DELETE ROWS’;
execute immediate str;
end;
删除:
truncate table MyTempTable
drop table MyTempTable
ORA-22992: 无法使用从远程表选择的 LOB 定位器
解决办法:
可以先创建一个临时表,然后把远程有LOB字段的表克隆到临时表中,然后再进行链接操作
1.本地创建临时表
Sql代码
create global temporary table photo_temp as select * from photo@photo_link where 1=2 ;
2.用database link导入远程数据到临时表
Sql代码
insert into photo_temp select * from photo@photo_link;--不要commit;否则临时表中数据消失
3.把临时表数据插入到永久表中:
Sql代码
insert into photo select * from photo_temp;
commit;
实例:
create global temporary table pic_temp as select * from WH_REGISTERPIC@ogdpshdb where 1=2 ;
insert into pic_temp select * from WH_REGISTERPIC@ogdpshdb;
insert into WH_REGISTERPIC select * from pic_temp;
commit;
删除临时表:
truncate table pic_temp ;
drop table pic_temp ;
解决普通用户在存储过程中无权建临时表问题:
在包头中加 AUTHID CURRENT_USER
例子:
create or replace package WH_Info_Output AUTHID CURRENT_USER is
-- Author :
-- Created : 2014年9月2日 15:27:25
-- Purpose :
--删除原有数据导入全部数据
procedure SP_WH_Info_Output_All(Fid in number default 1);
-- Public type declarations
--传入参数默认0:导入没有的数据 1:删除原有数据导入全部数据
procedure SP_WH_Info_Output(Fid in number default 0);
--导入WH_REGISTERPIC表(含有BLOG字段) 0:导入没有的数据 1:删除原有数据导入全部数据
procedure SP_WH_PIC_BLOGInfo_Output(Fid in number default 0);
end WH_Info_Output;
--导入WH_REGISTERPIC表(含有BLOG字段) 0:导入没有的数据 1:删除原有数据导入全部数据
procedure SP_WH_PIC_BLOGInfo_Output(Fid in number default 0)
is
str varchar2(300);
begin
if Fid = 0 then
str:='create global temporary table pic_temp as select * from WH_REGISTERPIC@ogdpshdb where 1=2';
execute immediate str;
str:='insert into pic_temp select * from WH_REGISTERPIC@ogdpshdb w where (w.WELLID, w.PICTYPECODE, w.VERSIONNO, w.PICFILENAME) not in (select WELLID, PICTYPECODE, VERSIONNO, PICFILENAME from WH_REGISTERPIC)';
execute immediate str; ----使用动态SQL语句来执行
str:='insert into WH_REGISTERPIC select * from pic_temp';
execute immediate str;
end if;
end SP_WH_PIC_BLOGInfo_Output;
在CentOS 6.4下安装Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虚拟机中安装步骤
Debian 下 安装 Oracle 11g XE R2
本文永久更新链接地址:

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

Artikel ini meneroka mengoptimumkan penggunaan memori MySQL di Docker. Ia membincangkan teknik pemantauan (statistik Docker, skema prestasi, alat luaran) dan strategi konfigurasi. Ini termasuk had memori docker, swapping, dan cgroups, bersama -sama

Artikel ini menangani ralat "tidak dapat membuka perpustakaan kongsi" MySQL. Isu ini berpunca daripada ketidakupayaan MySQL untuk mencari perpustakaan bersama yang diperlukan (.so/.dll fail). Penyelesaian melibatkan mengesahkan pemasangan perpustakaan melalui pakej sistem m

Artikel ini membincangkan menggunakan pernyataan jadual Alter MySQL untuk mengubah suai jadual, termasuk menambah/menjatuhkan lajur, menamakan semula jadual/lajur, dan menukar jenis data lajur.

Artikel ini membandingkan memasang MySQL pada Linux secara langsung berbanding menggunakan bekas podman, dengan/tanpa phpmyadmin. Ia memperincikan langkah pemasangan untuk setiap kaedah, menekankan kelebihan Podman secara berasingan, mudah alih, dan kebolehulangan, tetapi juga

Artikel ini memberikan gambaran menyeluruh tentang SQLite, pangkalan data relasi tanpa server tanpa mandiri. Ia memperincikan kelebihan SQLITE (kesederhanaan, mudah alih, kemudahan penggunaan) dan kekurangan (batasan konkurensi, cabaran skalabiliti). C

Panduan ini menunjukkan pemasangan dan menguruskan pelbagai versi MySQL pada macOS menggunakan homebrew. Ia menekankan menggunakan homebrew untuk mengasingkan pemasangan, mencegah konflik. Pemasangan Butiran Artikel, Permulaan/Perhentian Perkhidmatan, dan PRA Terbaik

Artikel membincangkan mengkonfigurasi penyulitan SSL/TLS untuk MySQL, termasuk penjanaan sijil dan pengesahan. Isu utama menggunakan implikasi keselamatan sijil yang ditandatangani sendiri. [Kira-kira aksara: 159]

Artikel membincangkan alat MySQL GUI yang popular seperti MySQL Workbench dan PHPMyAdmin, membandingkan ciri dan kesesuaian mereka untuk pemula dan pengguna maju. [159 aksara]
