如何使用TYPE RECORD调用过程?

卡洛斯

我在一个程序包中做了一个数据插入过程,我想将它与RECORD TYPE一起使用,但是我不知道该怎么称呼它。

我希望至少能够使用null中的其他值输入“ codigo”

    CREATE TABLE TB_CRUD_MAC" 
( "K_CODIGO" NUMBER(10,0), 
"A_NUMNIT" VARCHAR2(11 BYTE),
 "N_NOMBRE" VARCHAR2(11 BYTE),
 "N_APELLI" VARCHAR2(11 BYTE),
 "F_FECHA" DATE,
 "I_ESTADO" VARCHAR2(1 BYTE),
 "K_CLASIF" VARCHAR2(1 BYTE) )
create or replace PACKAGE PK_CRUD_MAC AS
TYPE R_REGISTRO IS RECORD (
    codigo TB_CRUD_MAC.K_CODIGO%TYPE,
    numnit TB_CRUD_MAC.A_NUMNIT%TYPE,
    nombre TB_CRUD_MAC.N_NOMBRE%TYPE,
    apelli TB_CRUD_MAC.N_APELLI%TYPE,
    fecha TB_CRUD_MAC.F_FECHA%TYPE,
    estado TB_CRUD_MAC.I_ESTADO%TYPE,
    clasif TB_CRUD_MAC.K_CLASIF%TYPE
    );

PROCEDURE PR_INSERT_REGISTRO (P_R_REGISTRO R_REGISTRO);

END;

create or replace PACKAGE BODY PK_CRUD_MAC AS

    PROCEDURE PR_INSERT_REGISTRO (P_R_REGISTRO R_REGISTRO)
      IS   
      BEGIN
       INSERT INTO TB_CRUD_MAC VALUES P_R_REGISTRO;
      END;
END;

老程序员

是的,你不能那样做。您必须传递完整的记录,例如:

declare
reg PK_CRUD_MAC.R_REGISTRO;
begin
   reg.codigo := 6;
   PK_CRUD_MAC.PR_INSERT_REGISTRO(reg);
end;

但是,如果您要做的只是插入与表列定义相同类型的记录,则无需创建自己的pl / sql记录。您可以执行以下操作:

create or replace PACKAGE PK_CRUD_MAC2 AS
PROCEDURE PR_INSERT_REGISTRO (P_R_REGISTRO TB_CRUD_MAC%ROWTYPE);
END;

create or replace PACKAGE BODY PK_CRUD_MAC2 AS
    PROCEDURE PR_INSERT_REGISTRO (P_R_REGISTRO TB_CRUD_MAC%ROWTYPE)
      IS   
      BEGIN
       INSERT INTO TB_CRUD_MAC VALUES P_R_REGISTRO;
      END;
END;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

.Net HttpListener:如何识别调用过程

来自分类Dev

如何使用参数在emacs中调用过程以启动emacs

来自分类Dev

使用调用过程的立即执行语句中的out参数

来自分类Dev

函数返回的调用过程

来自分类Dev

如何找到调用过程的过程句柄?

来自分类Dev

如何在PL / SQL中以行类型文字作为参数调用过程?

来自分类Dev

如何在每次在Amazon RDS上创建mysql连接时调用过程

来自分类Dev

Cypher-如何多次循环调用过程?

来自分类Dev

从P / L SQL脚本Oracle中使用“调用”功能的调用过程

来自分类Dev

如何在雪花中的另一个过程中调用过程

来自分类Dev

在Assembly中调用过程时是否需要使用方括号?

来自分类Dev

使用过程建立表

来自分类Dev

在不使用游标和循环的情况下为每一行调用过程?

来自分类Dev

从过程中调用过程

来自分类Dev

当我调用过程时...。如何检查列中的重复值?

来自分类Dev

调用过程LIKE%SQL

来自分类Dev

出现死锁时如何递归调用过程?

来自分类Dev

如何使用过程创建插入查询

来自分类Dev

如何使用过程杀死从Java代码调用它的作业?

来自分类Dev

调用过程Oracle apex

来自分类Dev

如何将变量值从函数传递给Shellscript中的调用过程

来自分类Dev

如何在不使用过程名称作为字符串的情况下使用存储库模式调用存储过程

来自分类Dev

使用参数在Java中调用过程

来自分类Dev

iSeries:SQLRPGLE如何为SELECT语句中的每个记录调用过程

来自分类Dev

使用DbRawSqlQry在实体框架中未调用过程

来自分类Dev

如何在oracle中使用包类型param调用过程?

来自分类Dev

如何从休眠中调用过程

来自分类Dev

如何创建触发器以使用更新语句调用过程

来自分类Dev

在函数中调用过程

Related 相关文章

  1. 1

    .Net HttpListener:如何识别调用过程

  2. 2

    如何使用参数在emacs中调用过程以启动emacs

  3. 3

    使用调用过程的立即执行语句中的out参数

  4. 4

    函数返回的调用过程

  5. 5

    如何找到调用过程的过程句柄?

  6. 6

    如何在PL / SQL中以行类型文字作为参数调用过程?

  7. 7

    如何在每次在Amazon RDS上创建mysql连接时调用过程

  8. 8

    Cypher-如何多次循环调用过程?

  9. 9

    从P / L SQL脚本Oracle中使用“调用”功能的调用过程

  10. 10

    如何在雪花中的另一个过程中调用过程

  11. 11

    在Assembly中调用过程时是否需要使用方括号?

  12. 12

    使用过程建立表

  13. 13

    在不使用游标和循环的情况下为每一行调用过程?

  14. 14

    从过程中调用过程

  15. 15

    当我调用过程时...。如何检查列中的重复值?

  16. 16

    调用过程LIKE%SQL

  17. 17

    出现死锁时如何递归调用过程?

  18. 18

    如何使用过程创建插入查询

  19. 19

    如何使用过程杀死从Java代码调用它的作业?

  20. 20

    调用过程Oracle apex

  21. 21

    如何将变量值从函数传递给Shellscript中的调用过程

  22. 22

    如何在不使用过程名称作为字符串的情况下使用存储库模式调用存储过程

  23. 23

    使用参数在Java中调用过程

  24. 24

    iSeries:SQLRPGLE如何为SELECT语句中的每个记录调用过程

  25. 25

    使用DbRawSqlQry在实体框架中未调用过程

  26. 26

    如何在oracle中使用包类型param调用过程?

  27. 27

    如何从休眠中调用过程

  28. 28

    如何创建触发器以使用更新语句调用过程

  29. 29

    在函数中调用过程

热门标签

归档