【发布时间】:2016-12-21 10:32:21
【问题描述】:
您好,我有一个字符串数组 (CompTblNameArry),我想根据光标内的选择查询在数据库中包含某些用户名。
代码如下:
DECLARE
TYPE SegTblTyp IS TABLE OF mto_kgpr.pdtable_12%rowtype;
TYPE TblNameStringArry IS TABLE OF varchar2(61) INDEX BY PLS_INTEGER;
--Type TblNameStringArry is varray(100) of varchar2(61);
LoopIteration pls_integer;
CURSOR GetUserNamesCursor is
SELECT username FROM DBA_USERS WHERE USERNAME LIKE 'MTO_K%';
SegCollectionTbl SegTblTyp;
--CompTblNameArry CompTblNameArryTyp;
CompTblNameArry TblNameStringArry;
BEGIN
LoopIteration := 1;
FOR Username in GetUserNamesCursor
LOOP
DBMS_OUTPUT.PUT_LINE('Iteration: ' || LoopIteration || ' username ' || Username.Username);
-- Row Below is causing Error
--CompTblNameArry(i) = Username.Username;
LoopIteration := LoopIteration + 1;
END LOOP;
END;
填充 CompTblNameArry 的正确语法是什么?我尝试的方法不起作用:
CompTblNameArry(i) = 用户名.用户名;
谢谢, 帕特
【问题讨论】:
-
语法是
variableNameOfTableType(index).Column := Value。所以像CompTblNameArry(i).WhatEverTheColumnIsCalled := value。如果它是varchar2的简单类型,就像您正在使用它一样variableNameOfTableType(index) := val,但您的Username.Username可能是这里问题的原因,而不是左侧 -
@KevinEsche
Username.Username对我来说看起来不错。认为右侧需要修复
标签: arrays string for-loop plsql