當前位置:首頁 » 存儲配置 » 存儲過程createtable

存儲過程createtable

發布時間: 2023-06-20 04:47:19

① 如何在Oracle的存儲過程中建表啊

可以在存儲過程中使用execute immediate 'sql';子句來創建表,例如Execute Immediate 'create table test(id int)';

② oracle存儲過程動態建表

需要用到動態sql。

1、首先要給用戶賦予許可權:

grantcreateanytableto用戶名;

2、創建存儲過程:

createprocerep_create_table
(v_sqlvarchar2)--輸入建表語句
as
begin
executeimmediatev_sql;
end;

3、執行:

③ 存儲過程中執行create table as select from提示表或視圖不存在

你是意思是UP_DXPT_BB_ZWSR 執行報表則和或者視圖不存在 ?

那你先敗旁確認下
select
t.sort_line as VCHID,
t.sort_line as BILLIDS,
t.set_year as set_year,
t.cre_money as CRE_MONEY
from syzw.voucher_detail_budget t where t.as_code like "4%"
and t.set_year=2014
and substr(latest_op_date,1,10) >=to_char((sysdate -interval ''7'' day),''yyyy-mm-dd''察盯橡)
執行有沒有問題

④ Sql 存儲過程創建表的問題!

把創建語句拼成字元串 存儲過程中用exec去執行創建

⑤ 請問用oracle的存儲過程如何創建一個表創建前判斷此表名是否已存在,已存在則不創建

說下思路吧
就是過程定義個字元串變數 createtable
然後再給變數賦值
createtable:='create table table_name()";
大概就這樣
判斷的話你寫個if語句就行

補充:
另一位說的不錯
你可以使用all_tables。注意你的表名要大寫。因為oracle里的數據字典存儲的數據是區分大小寫的。可以查詢出是否存在你要創建的表。

⑥ oracle存儲過程創建表

CREATE OR REPLACE PROCEDURE list_xs_name as
str_sql varchar2(2000);
begin
str_sql := 'create global temporary table xs_name (xh int,name varchar2(255),kc varchar2(255),fs int) on commit preserve rows';
execute immediate str_sql;
str_sql := 'select * from xs_name';
execute immediate str_sql;
dbms_output.put_line(str_sql);
END;

⑦ 存儲過程

存儲過程(Stored Procere)是一組為了完成特定功能的SQL語句集,經編譯後存儲在資料庫中。用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它。存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。總的來說,存儲過程具有以下一些優點:

◆存儲過程允許標准組件式編程

◆存儲過程能夠實現較快的執行速度

◆存儲過程能夠減少網路流量

◆存儲過程可被作為一種安全機制來充分利用

使用 SQL Server 中的存儲過程而不使用存儲在客戶計算機本地的 Transact-SQL 程序的優勢有:

允許模塊化程序設計。
只需創建過程一次並將其存儲在資料庫中,以後即可在程序中調用該過程任意次。存儲過程可由在資料庫編程方面有專長的人員創建,並可獨立於程序源代碼而單獨修改。

允許更快執行。
如果某操作需要大量 Transact-SQL 代碼或需重復執行,存儲過程將比 Transact-SQL 批代碼的執行要快。將在創建存儲過程時對其進行分析和優化,並可在首次執行該過程後使用該過程的內存中版本。每次運行 Transact-SQL 語句時,都要從客戶端重復發送,並且在 SQL Server 每次執行這些語句時,都要對其進行編譯和優化。

減少網路流量。
一個需要數百行 Transact-SQL 代碼的操作由一條執行過程代碼的單獨語句就可實現,而不需要在網路中發送數百行代碼。

可作為安全機制使用。
即使對於沒有直接執行存儲過程中語句的許可權的用戶,也可授予他們執行該存儲過程的許可權。

*********
Creat Table 是一個內嵌的SQL語句,是用命令的方法通過編程建立表結構。

****
如果你需要,可以將一條create table 語句作為一個存儲過程的內容。但存儲過程的內容包含更多的sql語句,可以更豐富。

⑧ mysql 在存儲過程中創建表格

DELIMITER$$
USE`test`$$
DROPPROCEDUREIFEXISTS`p_create_table`$$
CREATEDEFINER=`root`@`localhost`PROCEDURE`p_create_table`()
BEGIN
DECLAREtableNameVARCHAR(100);
DECLAREtable_nameVARCHAR(100);
DECLAREmonthIntINTDEFAULT1;
DECLAREmonthStrVARCHAR(16);
DECLAREtableHeaderVARCHAR(16);
DECLAREtableBodyVARCHAR(255);
DECLAREdropTableStrVARCHAR(255);
DECLAREsqlStrVARCHAR(1000);
SETtableName=CONCAT('test_',DATE_FORMAT(NOW(),'%Y'));
SETtableHeader='CREATETABLE';
SETtableBody='(`id`INT(11)NOTNULLAUTO_INCREMENT,`name`VARCHAR(10),PRIMARYKEY(`id`))ENGINE=INNODBDEFAULTCHARSET=utf8;';
WHILEmonthInt<=12DO
IFmonthInt<10THEN
SETmonthStr=CONCAT('0',monthInt);
ELSE
SETmonthStr=CONCAT(monthInt);
ENDIF;
SETtable_name=CONCAT(tableName,monthStr);
SETdropTableStr=CONCAT('DROPTABLEIFEXISTS',table_name);
SETsqlStr=CONCAT(tableHeader,table_name,tableBody);
SELECTdropTableStrINTO@dropTableStr;
SELECTsqlStrINTO@sqlStr;
BEGIN
PREPAREstepDropExistTableFROM@dropTableStr;
EXECUTEstepDropExistTable;
PREPAREstepCreateTbaleFROM@sqlStr;
EXECUTEstepCreateTbale;
END;
SETmonthInt=monthInt+1;
ENDWHILE;
END$$
DELIMITER;

⑨ 【50分】如何寫創建表的存儲過程

create or replace procere P_test(
start_time in varchar2,
end_time in varchar2
)
as
begin
execute immediate 'CREATE TABLE OCT_T_COMMON_SYMPTOM AS SELECT DISTINCT B.* FROM T_EHR A INNER JOIN T_COMMON_SYMPTOM B
ON A.EHR_ID=B.EHR_ID WHERE EHR_DATE between '''||start_time||''' and '''||end_time||'''';

execute immediate 'CREATE TABLE OCT_T_COMMON_DIAGNOSIS AS SELECT DISTINCT B.* FROM T_EHR A INNER JOIN T_COMMON_DIAGNOSIS B
ON A.EHR_ID=B.EHR_ID WHERE EHR_DATE between '''||start_time||''' and '''||end_time||'''';
exception
when others then
dbms_output.put_line(sqlerrm);
end;

ps:要確保你上面表的欄位EHR_DATE為varchar2類型才行,否則要作對應修改.

熱點內容
死神腳本 發布:2025-02-04 21:57:03 瀏覽:165
phpposthtml 發布:2025-02-04 21:37:46 瀏覽:87
最新asp源碼 發布:2025-02-04 21:17:33 瀏覽:570
讓linux死機 發布:2025-02-04 20:48:08 瀏覽:141
單方塊生存伺服器里如何獲取岩漿 發布:2025-02-04 20:48:07 瀏覽:785
快速指數演算法 發布:2025-02-04 20:20:40 瀏覽:299
python在類中定義函數調用函數 發布:2025-02-04 20:14:47 瀏覽:596
安卓手機的壁紙是哪個 發布:2025-02-04 20:14:44 瀏覽:202
java發展前景 發布:2025-02-04 20:10:19 瀏覽:77
mac登陸密碼哪裡設置 發布:2025-02-04 19:50:20 瀏覽:526