1
A
回答
5
(這是從今天起我的其他職位之一) 這是入門的演練:http://www.oracle.com/technology/obe/hol08/dotnet/udt/udt_otn.htm
,而這是一個比較詳細:http://download.oracle.com/docs/html/E10927_01/featUDTs.htm
但真正的肉&土豆已經在Samples目錄中安裝ODP後安裝在您的計算機上:%ORA_HOME%\ product \ 11.1.0 \ client_1 \ odp.net \ samples \ 2.x \ UDT
但是pl/sql端的東西:
首先創建單UDT同時
CREATE TYPE TESTTYPE IS OBJECT(COLA VARCHAR2(50) , COLB NUMBER(10));
create or replace procedure GetTestType(lTestType OUT NOCOPY TESTTYPE)
IS
BEGIN
SELECT TESTTYPE('ValA',123)
INTO LTESTTYPE
FROM DUAL ;
END GetTestType ;
按照上面的鏈接的方向得到.NET方面insynch
,現對於收集處理一行:
CREATE TYPE TESTTYPETABLE IS TABLE OF TESTTYPE ;
CREATE OR REPLACE PROCEDURE GETTESTTYPETABLE(lTestTypeTable OUT NOCOPY TestTypeTable)
IS
BEGIN
SELECT TESTTYPE(COLA,COLB)
bulk collect INTO lTestTypeTable
FROM (
SELECT 'ValA' COLA ,123 COLB
FROM DUAL
UNION
SELECT 'ValB' COLA ,234 COLB
FROM DUAL
UNION
SELECT 'Valc' COLA ,456 COLB
FROM DUAL
) ;
END GETTESTTYPETABLe;
然後在.net這邊的東西這實際上是一個值TESTTYPE()
現在爲了節省你一些時間,你可以使用RETURN在INSERT ING條款/ UPDATE/DELETES 這樣
create table testTable (colA varchar2(50) , colB number(10));
CREATE SEQUENCE TESTSEQ START WITH 1 NOCACHE;
DECLARE
lTestTypeTable TestTypeTable ;
BEGIN
UPDATE TESTTABLE
SET
COLA = '1' ,
COLB = 'a'
WHERE COLA IS NULL
RETURNING TESTTYPE(COLA,COLB) --NOTE IF YOU HAVE ONE ROW YOU MAY DROP THE BULK COLLECT AND PUT IT INTO THE SINGLE ROW TYPE
BULK COLLECT INTO
lTestTypeTable
;
END ;
/
DECLARE
lTestType TestType;
BEGIN
INSERT INTO TESTTABLE(COLA, COLB)
VALUES ('BBB' , testSeq.NEXTVAL)
RETURNING TESTTYPE(COLA,COLB)
INTO
lTestType
;
DBMS_OUTPUT.PUT_LINE('MY NEW SEQUENCE # IS SET TO ' || lTestType.COLB) ;
END ;
/
遺憾的是,似乎你不能做一個
insert into TT ... SELECT * from .. RETURNING Type(x,y) BULK COLLECT INTO lVariable;
所以不是死記硬背應對從該網站,它講述了一個「變通「要讓散裝收藏工作在插入聲明中 http://www.oracle-developer.net/display.php?id=413
相關問題
- 1. 將字符串轉換爲用戶定義的類類型
- 2. Oracle sql或plsql將行轉換爲列
- 3. 將Fortran用戶定義類型轉換爲C++類
- 4. 將Linq查詢轉換爲cumstom類型
- 5. 將Linq組轉換爲用戶定義的類型
- 6. 將字符串值轉換爲用戶定義的類型
- 7. 如何將查詢結果中的對象轉換爲自定義類型
- 8. 如何將用戶定義的非託管類型轉換爲託管類型?
- 9. 如何轉換爲postgresql中的用戶定義類型
- 10. 使用轉換將字符串轉換爲自定義類型
- 11. 將查詢從Oracle轉換爲TSQL
- 12. 將sql/oracle轉換爲java mongodb查詢
- 13. 將sql查詢轉換爲oracle
- 14. 將Oracle分層查詢轉換爲MariaDB
- 15. 將查詢從oracle轉換爲mysql
- 16. 將子類型轉換爲定義爲通用類型的類型
- 17. 將oracle blob轉換爲xml類型
- 18. 將用戶控件從類型名稱轉換爲自定義控件類型?
- 19. 作爲自定義數據類型將數據從Linq轉換爲SQL查詢
- 20. 通過使用子查詢將oracle查詢轉換爲HQL
- 21. 在java中將字節[]轉換爲用戶定義的類
- 22. 將類型轉換爲非類型定義的結構
- 23. 如何將Object []類型轉換爲用戶自定義的陣列型
- 24. 將具有rowid和rownum的Oracle查詢轉換爲MySQL查詢
- 25. 類型轉換爲自定義類 - C++
- 26. Oracle包中定義的用戶定義類型
- 27. 將自定義類型轉換爲基類型
- 28. 如何將字符串類型轉換爲用戶定義的自定義類型
- 29. SSIS中的Oracle查詢定義了錯誤的數據類型
- 30. 從常量用戶定義的類轉換爲C++中的內建類型
非常感謝。這是我一直在尋找的PL/SQL方面。我的其他問題還不夠清楚,所以我也會在那裏標記。 – haymansfield 2010-07-01 08:44:30
np,我添加了一些額外的實現細節,從更新/插入/等獲取SQL數據集合(這會節省我一些時間!) – Harrison 2010-07-01 11:46:34