日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle删除定义变量,Oracle存储过程,临时表的创建、删除,变量的定义和使用

發布時間:2023/12/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle删除定义变量,Oracle存储过程,临时表的创建、删除,变量的定义和使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

create or replace procedure Test_GetOaUserInfo? as

--authid current_user操作當前存儲過程的當前用戶,否則提示權限不足,但是這樣存儲過程這能執行一次

--,或者GRANT CREATE ANY TABLE TO any users;

timePoint? Date;

tabCstr varchar2(1000);???? --創建表的字符串

varNum number(1) default 0;?? --定義統計記錄變量默認為0

tabDstr varchar2(500);????? --存數據的字符串

tabData varchar2(500);????? -- 存數據的字符串

maxRow number;

begin

--抓取截止日期

select? max(last_date) into timePoint from basedb_users;

--存取表的記錄數

select count(*) into varNum from user_tables where table_name='BASEDB_USERS_TEMP_TB';

if timePoint is null then

begin

timePoint:=sysdate;

end;

end if;

dbms_output.put_line(to_char(timePoint,'YYYY-mm-dd hh24:mm:ss')); --set serveroutput on

dbms_output.put_line(varNum);

--創建臨時表

if varNum < to_number(1) then?? --如果沒有數據表創建臨時表

--dbms_output.put_line('執行了啊');

tabCstr := 'create global temporary table BASEDB_USERS_TEMP_TB(

ID?????????? INTEGER not null,

LOGINID????? VARCHAR2(15),

FIRSTNAME??? VARCHAR2(30),

LASTNAME???? VARCHAR2(60),

FULLNAME???? VARCHAR2(100),

SEX????????? CHAR(1),

JOBTITLE???? INTEGER,

SUBCOMPANYID INTEGER,

DEPARTMENTID INTEGER,

MANAGEID???? INTEGER,

WORKCODE???? VARCHAR2(15),

LAST_DATE??? DATE,

ACTION_SIGN? CHAR(1),

STATUS?????? CHAR(1),

PASSWORD???? VARCHAR2(50)

)ON COMMIT PRESERVE ROWS '; --ON COMMIT PRESERVE ROWS 會話級臨時表 ,ON COMMIT delete ROWS 事務級臨時表

execute immediate tabCstr;--執行DDL語句

end if;

--導入數據到臨時表中

begin

tabData := 'insert into BASEDB_USERS_TEMP_TB(id,fullname)

select to_number(u.id) id,u.fullname from FMASTER.basedb_users@linkoa u where u.last_date

execute immediate tabData using timePoint;

commit;

end;

dbms_output.put_line(tabData);

select max(rownum) into maxRow from FMASTER.basedb_users@linkoa u where u.last_date < timePoint;? --查詢中最大記錄數 ???? commit; ???? dbms_output.put_line('記錄數'||maxRow); ???? ??? --刪除臨時表 ??? --tabDstr := 'truncate table BASEDB_USERS_TEMP_TB '; ??? --execute immediate tabDstr;? ??? --tabDstr := 'drop table BASEDB_USERS_TEMP_TB '; ??? --execute immediate tabDstr;? ??? --? commit;?? end Test_GetOaUserInfo;

總結

以上是生活随笔為你收集整理的oracle删除定义变量,Oracle存储过程,临时表的创建、删除,变量的定义和使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。