当前位置: 首页 > 面试题库 >

PL / SQL如何返回ROW中的所有属性

壤驷志学
2023-03-14
问题内容

我不知道如何使用RETURNING子句返回所有属性

我想要这样的东西:

DECLARE  
    v_user USER%ROWTYPE  
 BEGIN  
     INSERT INTO User 
     VALUES (1,'Bill','QWERTY') 
     RETURNING * INTO v_user;  
END;

RETURNING * INTO出现错误,我该如何更换*


问题答案:

如果我们可以做这样的事,但是可惜的是:

SQL> declare
  2      v_row t23%rowtype;
  3  begin
  4      insert into t23
  5          values (my_seq.nextval, 'Daisy Head Maisy')
  6          returning * into v_row;
  7  end;
  8  /
        returning * into v_row;
                  *
ERROR at line 6:
ORA-06550: line 6, column 19:
PL/SQL: ORA-00936: missing expression
ORA-06550: line 4, column 5:
PL/SQL: SQL Statement ignored


SQL>

我相信可能会记录此功能的更改请求,因为我知道很多人都想要它。但是目前,我们所能做的就是对每一列进行冗长的说明:

SQL> declare
  2      v_row t23%rowtype;
  3  begin
  4      insert into t23
  5          values (my_seq.nextval, 'Daisy Head Maisy')
  6          returning id, person_name into v_row;
  7  end;
  8  /

PL/SQL procedure successfully completed.

SQL>

如果您有很多专栏,那就是个坏消息!

我怀疑其基本原理是,大多数表的派生列相对较少(分配给ID的序列,分配给CREATED_DATE的sysdate等),因此大多数值对于插入过程应该是已知的(或至少是已知的)。

编辑

我很担心如何在没有冗长的每一列说明的情况下返回所有属性;)也许这是不可能的。

我以为我已经说清楚了,但是无论如何:是的,目前无法*在RETURNING子句中使用或类似的非特定机制。



 类似资料:
  • 问题内容: 从PL / SQL到Java来回传递数字和字符串没有问题,但是如何传递 数组 ?我从PL / SQL调用Java-并非如此。 下面是一个按预期工作的示例。如何编写PL / SQL 调用规范 ,以便可以从PL / SQL调用它? 我已经阅读了《发布带有调用规范的Java类》,其中可以看到嵌套表与相对应,但是我无法使其工作。我可能缺少一些琐碎的细节,因为我不是Java程序员。 问题答案:

  • 问题内容: 在Java中,如何从返回数组的函数中获取值。 如果我的pl / sql函数返回名为的数组,那么在Java中是否可以使用从中获取值到Java对象中? 谢谢 更新1 我正在调用函数的Java代码,但是却遇到异常。 更新2 和 功能 固定更新3 问题答案: 我没有这样做,但应该可以。首先,您必须注册函数的参数。这样就可以这样。 试试这个男人,然后给我,问是否做。 编辑: 这些字符 ? 表示您

  • 问题内容: 在我的查询中使用contains()方法会产生很多不必要的结果。不要告诉我使用“赞”之类的东西。它是硬编码的,不能更改。 问题答案: 包含用于具有“上下文索引”的文本字段,该索引为要搜索的文本字段建立索引。标准用法是这样的(使用运算符显示与1 in匹配的基于1的子句返回的内容): 对于表中的此类数据 该查询将返回 这样包含类似,但将计算一个字符串在文本字段中出现的次数。我找不到包含包含

  • 我已经发布了一个层,其中包含大约76列(属性)。但是,当我调用WFS服务时,它没有返回所有属性(列),会遗漏一个名称为“id”的属性(列)。我使用的是oracle Spatial 11g数据库,其中包含地图数据。我是不是漏掉了什么?所有其他的事情都工作得很好,就像WMS服务一样。

  • 问题内容: 我想知道是否有可能枚举返回的行。不根据任何列的内容,而只是产生一个连续的整数索引。例如 将返回一些内容: 它用于https://data.stackexchange.com/ 问题答案: 尝试:

  • 我不认为问题是查询,但我认为我会包括它来帮助隔离。