打开Net Manager,选中服务名称,检查服务标识栏里的服务名输入是否正确。该服务名必须与服务器端监听器配置的全局数据库名一致。
方法二: 在TOAD登陆时使用全局名称:
zhouzhenhua:1521/javafan
人品不错,挺让人放心的,不会像有的男的看起来很花花的,还有就是没有明显的缺点,这可是很重要的
我现在看到的男的歪瓜裂枣的太多了
PL/SQL集合方法是用于操纵集合变量的内置函数或过程。
语法:
collection_name.method_name[(parameter)]
注意:集合方法extend和trim不适用于PL/SQL表。
1. exists
2. count
3. limit
返回VARRAY变量所允许的最大元素个数。嵌套表和PL/SQL表的元素个数无限制,所以调用该方法时返回NULL。
4. first和last
第一个元素的下标,最后一个元素的下标
ename_table(ename_table.first)
ename_table(ename_table.last)
5. prior和next
前一个元素的下标,后一个元素的下标
ename_table(ename_table.prior(1))
ename_table(ename_table.next(1))
6.extend
该方法为PL/SQL集合变量增加元素,只适用于嵌套表和VARRAY。
注意:当使用EXTEND增加元素时,不能为未初始化的集合变量增加元素。
EXTEND方法有三种调用方法:
- EXTEND:添加一个null元素。
- EXTEND(n):添加n个null元素
- EXTEND(n,i):添加n个元素,元素值与第i个元素相同。
7. trim
该方法用于从集合变量尾部删除元素,并且只适用于嵌套表和VARRAY。
TRIM共有两种调用方法:
- TRIM: 从集合变量尾部删除一个元素。
- TRIM(n): 从集合变量尾部删除n个元素。
8. delete
用于删除特定元素,只适用于嵌套表和PL/SQL表。
DELETE有三种调用方法:
- DELETE: 删除所有的元素
- DELETE(n): 删除第n个元素。
- DELETE(m,n):删除m~n之间所有的元素。
第一,PL/SQL表
它只能作为PL/SQL类型,不能作为表列类型。
下标可以为负值,并且元素个数无限制。
下标类型key_type: 包括BINARY_INTEGER、PLS_INTEGER、VARCHAR2。
语法:
TYPE type_name IS TABLE OF element_type
[NOT NULL] INDEX BY key_type;
identifier type_name;
例如:
DECLARE
TYPE category_table_type IS TABLE OF VARCHAR2 (40)
INDEX BY VARCHAR2 (40);
category_table category_table_type;
BEGIN
category_table ('长沙') := '长沙,我爱你!';
DBMS_OUTPUT.put_line (category_table ('长沙'));
END;
第二,嵌套表
可以作为表列的数据类型使用。
当使用嵌套表元素时,需要使用构造方法初始化嵌套表变量。
下标从1开始计算。
语法:
TYPE type_name IS TABLE OF element_type;
identifier type_name;
例子:
DECLARE
TYPE category_table_type IS TABLE OF tb_out_service.servicename%TYPE;
category_table category_table_type;
BEGIN
category_table := category_table_type ('全省', '长沙', '常德');
SELECT servicename
INTO category_table (3)
FROM tb_out_service
WHERE serviceid = '&serviceid';
DBMS_OUTPUT.put_line (category_table (1));
DBMS_OUTPUT.put_line (category_table (2));
DBMS_OUTPUT.put_line (category_table (3));
END;
第三,变长数组(VARRAY)
需要使用构造方法初始化VARRAY变量。
语法:
TYPE type_name is VARRAY(size_limit) OF element_type [NOT NULL];
identifier type_name;
第一,定义PL/SQL记录
1. 自定义PL/SQL记录
2. 使用%ROWTYPE属性定义记录变量
举例:
-----------------------------------------------
DECLARE
--自定义记录类型
TYPE emp_record_type IS RECORD (
serviceid tb_out_service%TYPE,
sericename tb_out_service%TYPE
);
emp_record emp_record_type;
--使用%ROWTYPE属性定义记录变量
category_record tb_out_service%ROWTYPE;
BEGIN
NULL;
END;
第二,使用PL/SQL记录
DECLARE
--使用%ROWTYPE属性定义记录变量
category_r tb_out_service%ROWTYPE;
BEGIN
...
UPDATE tb_out_service
SET ROW = category_r --注意ROW关键字
WHERE serviceid = category_r.serviceid;
...
INSERT INTO tb_out_service
VALUES category_r; --在values子句中使用记录成员播入数据。
...
END;