簡體   English   中英

從 rowtype 參數分配給變量值

[英]Assign to variables values from rowtype parameter

我搜索了 stackoverflow 和其他來源,但沒有發現任何有用的東西。

我必須實現一個從 Reservation 表中接收一行(因此為“%rowtype”)作為參數的過程。

該表的名稱是 Reservation(作為屬性:id_Reservation、id_Room、price 等)。

我創建了一個匿名塊來創建 var_reservation 變量,它將作為過程的參數:

CREATE OR REPLACE PROCEDURE priceCheckout(var_reservation reservation%ROWTYPE) IS
    l_idReservation NUMBER;
    l_idRoom NUMBER;
    prie INT;
    date1 DATE;
    date2 DATE;
    ex exception;

BEGIN
    l_idReservation := var_reservation.id_reservation;
    (...)
END;

但這是錯誤的。 我該如何糾正?

如果你做對了,它就可以工作。 看看以下基於 Scott 的DEPT表的示例:

SQL> select * from dept;

    DEPTNO DNAME                LOC
---------- -------------------- --------------------
        10 ACCOUNTING           NEW YORK
        20 RESEARCH             DALLAS
        30 SALES                CHICAGO
        40 OPERATIONS           BOSTON

SQL> set serveroutput on

程序:

SQL> create or replace procedure p_test (var_row dept%rowtype)
  2  is
  3    l_dname dept.dname%type;
  4  begin
  5    l_dname := var_row.dname;
  6
  7    dbms_output.put_line('Department name = ' || l_dname);
  8  end;
  9  /

Procedure created.

測試:

SQL> declare
  2    l_row dept%rowtype;
  3  begin
  4    select *
  5      into l_row
  6      from dept
  7      where deptno = 10;
  8
  9    p_test(l_row);
 10  end;
 11  /
Department name = ACCOUNTING

PL/SQL procedure successfully completed.

SQL>

說“這是錯誤的”很難調試。 它不是 Oracle 錯誤消息,所以...除非您指定什么是“this”,並且可能編輯問題並發布您自己的 SQL*Plus session 的復制/粘貼(就像我所做的那樣),以便我們看看你做了以及 Oracle 如何回應,YOYO。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM