Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Plsql 创建一个表索引并填充emp中的行,然后循环并打印它们_Plsql_Oracle11g - Fatal编程技术网

Plsql 创建一个表索引并填充emp中的行,然后循环并打印它们

Plsql 创建一个表索引并填充emp中的行,然后循环并打印它们,plsql,oracle11g,Plsql,Oracle11g,按表创建索引并填充emp中的行,然后循环并打印它们 嗨,有人能理解这个问题吗?请给我解决这个问题的建议 集合是具有相同数据类型的有序元素组 可通过下标/索引访问。Oracle PL/SQL支持 三种不同类型的收藏 Index-by tables or Associative array Nested table Variable-size array or Varray 下面是一个示例,说明如何通过表定义索引,并使用Emp表中的行填充索引,并相应地打印它们 DECLARE CURSO

按表创建索引并填充emp中的行,然后循环并打印它们

嗨,有人能理解这个问题吗?请给我解决这个问题的建议

集合是具有相同数据类型的有序元素组 可通过下标/索引访问。Oracle PL/SQL支持 三种不同类型的收藏

Index-by tables or Associative array

Nested table

Variable-size array or Varray
下面是一个示例,说明如何通过表定义
索引,并使用
Emp
表中的行填充索引,并相应地打印它们

DECLARE
   CURSOR c_emp is
      select name from emp;

   TYPE c_list IS TABLE of emp.name%type INDEX BY binary_integer;
   name_list c_list;
   counter integer :=0;
BEGIN
   FOR n IN c_emp LOOP
      counter := counter +1;
      name_list(counter)  := n.name;
      dbms_output.put_line('Employee('||counter|| '):'||name_list(counter));
  END LOOP;
END;
/

请参阅以及,以获取更多信息。

无论如何,谢谢,我不知道如何开始。请阅读Oracle文档/教程。这是我能给出的最好的建议。我认为我们必须使用下面的方法来解决这个问题:在emp(ename)表空间上创建索引emp_ename用户压缩1;对吗???还是错了??谢谢rahul u先生帮助aloti尝试这么做,但它需要15个声誉。这与varray Creation的情况相同。我不好,我对在表上创建索引感到困惑,并给出了错误的答案。实际上,您正在谈论Oracle中的集合,是的,varray也是一种集合类型,它存储相同类型元素的固定大小顺序集合,但创建不同于表索引()。再次查看编辑后的答案。