相关疑难解决方法(0)

Oracle PL/SQL - 如何创建一个简单的数组变量?

我想创建一个可以在我的PL/SQL代码中使用的内存数组变量.我在Oracle PL/SQL中找不到任何使用纯内存的集合,它们似乎都与表相关联.我想在我的PL/SQL(C#语法)中做类似的事情:

string[] arrayvalues = new string[3] {"Matt", "Joanne", "Robert"};
Run Code Online (Sandbox Code Playgroud)

编辑: Oracle:9i

oracle plsql oracle9i

124
推荐指数
4
解决办法
43万
查看次数

似乎找不到循环PL/SQL数组的方法?

我想这样做:

arrCauses := APEX_UTIL.STRING_TO_TABLE(:P1_CAUSE);
FOR c IN 1..arrCauses.count LOOP
  INSERT INTO DT_EVENT_CAUSE (
  EVENT_ID,
  CAUSE_ID)

  VALUES (
  nextPK, c);
END LOOP;
Run Code Online (Sandbox Code Playgroud)

或这个

arrCauses := APEX_UTIL.STRING_TO_TABLE(:P1_CAUSE);
FOR c IN arrCauses.first..arrCauses.last LOOP
  INSERT INTO DT_EVENT_CAUSE (
  EVENT_ID,
  CAUSE_ID)

  VALUES (
  nextPK, c);
END LOOP;
Run Code Online (Sandbox Code Playgroud)

问题是... c总是只是计数,所以如果数组是1项,则会插入1的ac.如果数组中有3个项目,则将插入c的1,2和3.与数组中的实际值相反.我究竟做错了什么?!

sql database plsql

2
推荐指数
1
解决办法
325
查看次数

标签 统计

plsql ×2

database ×1

oracle ×1

oracle9i ×1

sql ×1