oracle儲存過程!解決網友問題
有表T_1(index_1, crop_id, corp_name, start_time, end_time),
需要生成T_2(index_2, corp_id, corp_name, year_time, month_time).
其中index_1和index2由SEQUENCE產生
資料如下:
T_1
index_1, corp_id, corp_name, start_time, end_time
101 1 microsoft 2007-5 2007-7
102 2 ibm 2008-1 2008-2
T_2
index_2, corp_id corp_name year_time month_time
8 1 microsoft 2007 5
9 1 microsoft 2007 6
10 1 microsoft 2007 7
11 2 ibm 2008 1
12 2 ibm 2008 2
解答:
用儲存過程寫一個,沒有考慮單個corp_name跨年的情況!
- SQL code
- --建立T_1 create table T_1 ( corp_id int ,corp_name varchar(10) ,start_time date ,end_time date ) --建立T_2 create table T_2 ( corp_id int ,corp_name varchar(10) ,year_time DATE ,month_time date ) --插入資料 insert into T_1 values('1','microsoft',to_date('2007-05','yyyy-mm'),to_date('2007-07','yyyy-mm')) insert into T_1 values('2','ibm',to_date('2008-01','yyyy-mm'),to_date('2008-02','yyyy-mm')) --建立儲存過程 create or replace procedure pro_test_A is i INT; j INT; A01 INT; A02 varchar2(10); A03 Date; A04 Date; A05 INT; A06 INT; tmpA INT; tmpB INT; CURSOR cur_q IS SELECT * FROM t_1; BEGIN OPEN cur_q; LOOP FETCH cur_q INTO A01,A02,A03,A04; EXIT WHEN cur_q%NOTFOUND; tmpA :=MONTH(A03); tmpB :=MONTH(A04); A06 :=YEAR(A03); A05 := tmpB-tmpA; j :=tmpA-1; FOR i in 0..A05 Loop j :=j+1; INSERT INTO T_2 values(A01,A02,A06,j); COMMIT; END Loop; END LOOP; CLOSE Cur_q; END; ______________________ SQL: exec pro_test_a ______________________ RESULT: 1 2 ibm 2008 1 2 2 ibm 2008 2 3 1 microsoft 2007 5 4 1 microsoft 2007 6 5 1 microsoft 2007 7
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/101162/viewspace-1007579/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 儲存過程問題。。儲存過程
- 解決儲存過程擷取錯誤的問題儲存過程
- Java呼叫Oracle儲存過程的問題JavaOracle儲存過程
- Hibernate呼叫oracle儲存過程的問題Oracle儲存過程
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- ORACLE中儲存過程的許可權問題Oracle儲存過程
- Oracle儲存過程編譯卡死的解決方法Oracle儲存過程編譯
- Oracle儲存過程Oracle儲存過程
- MySQL儲存過程詳解 mysql 儲存過程MySql儲存過程
- 一個儲存過程的問題!儲存過程
- 儲存過程單引號問題儲存過程
- ETL通用解決方案---oracle+儲存過程 實現Oracle儲存過程
- JOB建立,解決網友問題
- Enterprise Library- Data Block使用oracle儲存過程出現問題的解決BloCOracle儲存過程
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- Oracle儲存過程-1Oracle儲存過程
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程例子Oracle儲存過程
- Oracle建立儲存過程Oracle儲存過程
- oracle plsql儲存過程OracleSQL儲存過程
- ORACLE 儲存過程示例Oracle儲存過程
- mysql多次呼叫儲存過程的問題MySql儲存過程
- oracle儲存過程編譯死掉的原因及解決(zt)Oracle儲存過程編譯
- MySQL儲存過程詳解 mysql 儲存過程linkMySql儲存過程
- 從sybase的儲存過程轉向oracle的儲存過程儲存過程Oracle
- MySQL儲存過程的許可權問題MySql儲存過程
- 原創:oracle 儲存過程Oracle儲存過程
- oracle 儲存過程批次提交Oracle儲存過程
- oracle 儲存過程學習Oracle儲存過程
- [Flashback]Oracle flashback儲存過程Oracle儲存過程
- Oracle儲存過程學習Oracle儲存過程
- oracle的儲存過程格式Oracle儲存過程
- java 呼叫oracle 儲存過程JavaOracle儲存過程
- oracle--08儲存過程Oracle儲存過程
- 通過IPFS技術解決NFT的永久儲存問題
- mongo 儲存過程詳解Go儲存過程
- mysql儲存過程詳解MySql儲存過程
- 儲存過程的詳解儲存過程