当前位置: 首页 > 知识库问答 >
问题:

引用游标读取具有不同列的行

施权
2023-03-14

我在获取引用光标时遇到问题。

假设我有引用游标的变量,“c_cursor SYS_REFCURSOR”,并且参考游标将具有具有以下列的行

列A|列B|列C

我有这个行类型变量“r_table TestTable%rowtype”
这个行类型有列A,列B和列C,其中包含额外的列。所以它就像这个

列A|列B|列C|列D|列E|列F

因此,我要做的是创建一行,其中列a、B和C从游标值中提取,其余列给出一些硬编码值

loop
   fetch c_cursor into r_table -- but with extra value hard coded
end loop;

所以我期望的最终结果是columnA | columnB | columnC | columnD | columnE | columnF



列A、B和C在引用游标和行类型中是相同的。

我应该创建某种时间变量来保存引用游标中的值,然后将值传递到最后一行吗??我认为它不是那么有效



你们能给我一些做这件事的好主意吗??

谢谢

共有1个答案

卢普松
2023-03-14

Oracle设置:

CREATE TABLE testTable ( A, B, C, D, E ) AS
  SELECT 'A', 1, DATE '2017-01-01', 123.2, 'DEF' FROM DUAL UNION ALL
  SELECT 'B', 2, DATE '2017-01-02', 456.5, 'GHI' FROM DUAL;

PL/SQL:

SET SERVEROUTPUT ON;
DECLARE
  TYPE abc_type IS RECORD(
    A testTable.A%TYPE,
    B testTable.B%TYPE,
    C testTable.C%TYPE
  );

  CURSOR c_cursor IS
    SELECT A, B, C FROM testTable;

  r_table TestTable%ROWTYPE;
  abc     ABC_TYPE;
BEGIN
  OPEN c_cursor;
  LOOP
    FETCH c_cursor INTO abc;
    EXIT WHEN c_cursor%NOTFOUND;
    r_table.A := abc.A;
    r_table.B := abc.B;
    r_table.C := abc.C;
    r_table.D := 789.7; -- Some hard-coded value
    r_table.E := 'JKL'; -- Some hard-coded value
    DBMS_OUTPUT.PUT_LINE(
      r_table.A||','||r_table.B||','||r_table.C||','||r_table.D||','||r_table.E
    );
  END LOOP;
  CLOSE c_cursor;
END;
/
 类似资料:
  • 读取文件已支持 windows 系统,版本号大于等于 1.3.4.1; 扩展版本大于等于 1.2.7; PECL 安装时将会提示是否开启读取功能,请键入 yes; 编译 编译时需添加 --enable-reader ./configure --enable-reader 示例一 $config = ['path' => './tests']; $excel = new \Vtiful\

  • 问题内容: 我正在尝试从DWH SQL Server表中导入数据,该表使用Clustered Columnstore Index到through中。但是,在我的自定义源从数据库中检索到一定数量的行之后,会发生此异常: SqlExceptionHelper:具有聚集的列存储索引的表不支持游标 我使用的是JDBC SQL Server驱动程序类型4,显然,它使用游标来迭代结果集。因此,我尝试将提取大小

  • 问题内容: 我在Linux(UTF-8)计算机上有一个要读取的.RData文件,但我知道该文件位于Latin1中,因为我是在Windows上自己创建的。不幸的是,我无权访问原始文件或Windows计算机,并且需要在Linux计算机上读取这些文件。 要读取Rdata文件,通常的过程是运行。诸如此类的函数具有可用于解决此类问题的参数,但没有这种功能。如果尝试,我只会收到此(预期)错误: 加载错误(“

  • 问题内容: 我正在尝试获得类似这样的功能的参考: 我有以下错误: 如何获得具有指定参数的功能? 问题答案: 由于有两个名称相同但签名不同的方法,因此您必须指定所需的方法: 或者(如@Antonio正确指出的): 如果您需要将类的实例作为第一个参数的咖喱函数,则可以以相同的方式进行,只有签名不同(将@Antonios注释与您的问题进行比较):

  • 我正在尝试使用GridLayoutManager构建一个RecyclerView,它每行有一个可变的列计数,如下所示: 同一行中所有项目的宽度之和将始终为屏幕宽度。 我试图重新组织项目列表,按行列表分组,然后每行膨胀一个线性布局。它不太好。 所以我被困住了,没有任何想法。任何帮助都将非常感激

  • 问题内容: 我想知道带有方法引用和功能接口的所有这些东西如何在较低级别上工作。最简单的例子是我们有一些列表 现在我们要使用Collections类对其进行排序,因此我们可以调用: 但是,如果我们定义自定义比较器,则可能类似于: 问题在于Collections.sort具有两个参数:List和Comparator。由于Comparator是功能性接口,因此可以用具有相同签名(参数和返回类型)的lam