簡體   English   中英

Oracle CREATE TYPE和PL / SQL

[英]Oracle CREATE TYPE and PL/SQL

我們有一個聲明為的Oracle類型:

創建或替換類型its_accountarray;

沒有基本類型。 然后在過程和包中使用此類型(在Java存儲過程中用作數組描述符)。 在過程/包中,它使用擴展函數添加到數組。

<declare section>
    v_account latax.ITS_ACCOUNTARRAY := new ITS_accountArray();
...
BEGIN
    ...
    ...
    v_account.extend(1);

在Java中,它用作:oracle.sql.ARRAY ls_accountARRAY,ls_periodARRAY;

oracle.sql.ArrayDescriptor ad =   ArrayDescriptor.createDescriptor(**"ITS_ACCOUNTARRAY"**, oconn);

ls_accountARRAY = new ARRAY(ad, oconn, arg_accounts);
ocs.setARRAY(2, ls_accountARRAY);

我很好奇這是如何工作的。 盡管名稱中包含Array,但它並未定義為數組或表類型,就像我通常看到的那樣。 它有效,但這是合法用法還是我應該明確聲明某種數組類型的類型?

謝謝

山姆

我試圖重現你說的發生了什么,並得到一個錯誤:

CREATE OR REPLACE TYPE its_accountarray;

DECLARE
  v its_accountarray := its_accountarray();
BEGIN
  null;
END;
/

PLS-00311: the declaration of "ITS_ACCOUNTARRAY" is incomplete or malformed

所以,你可能正在查看錯誤的類型定義(例如,你在錯誤的模式中查看它),或者沒有查看整個類型定義(例如,有一個提供實現的TYPE BODY)。 由於這看起來像嵌套表類型,前者聽起來更有可能。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM