給定一包規範
CREATE OR REPLACE PACKAGE example IS
TYPE assoc_array_type IS TABLE OF VARCHAR2(100) INDEX BY VARCHAR2(100);
g_const_array assoc_array_type;
PROCEDURE dummy_proc (i_var NUMBER);
END example;
/
如下
CREATE OR REPLACE PACKAGE BODY example IS
PROCEDURE dummy_proc (i_var NUMBER) IS
BEGIN
dbms_output.put_line(g_const_array('key_1'));
END dummy_proc;
BEGIN
g_const_array('key_1') := 'value_1';
g_const_array('key_2') := 'value_2';
g_const_array('key_3') := 'value_3';
END example;
/
爲了測試,編譯規範和身體,然後調用dummy_proc,這將打印value_1
到可以初始化常量的關聯數組安慰。關聯數組也可以根據不同的需要由binary_integer或pls_integer進行索引。
編輯:這第二個包顯示您可以引用公共數組並獲取其他包中的初始化值。
CREATE OR REPLACE PACKAGE example_2 IS
PROCEDURE dummy_proc (i_key VARCHAR2);
END example_2;
/
CREATE OR REPLACE PACKAGE BODY example_2 IS
PROCEDURE dummy_proc (i_key VARCHAR2) IS
BEGIN
dbms_output.put_line(example.g_const_array(i_key));
END dummy_proc;
END example_2;
/
BEGIN
example_2.dummy_proc('key_1');
END;
/
更多的情況下是需要提供一個解決方案的幫助,但你可能要檢討[關聯數組](http://docs.oracle.com/cd/E11882_01/appdev.112/e25519/composites。 HTM#CHDEIDIC)。這是PL/SQL中的鍵/值對類型,與其他語言中的字典或散列映射非常相似。 – 2015-02-24 16:27:27
我將如何初始化所提到的包塊中的關聯數組? – aPinchOfInsomnia 2015-02-24 20:27:27