-1

以下の手順では、approval_redirect_logテーブルの外部キーであるapproval_log_id列に複数のidレコードを挿入します。

別のテーブルapproval_logからapproval_log_idを取得しています。最初の列のselectクエリは、他のデータと一緒に挿入する必要がある複数のIDを返します。他の列のデータは、すべてのIDに対して繰り返す必要があります。

ここで最初の列で何が間違っているのですか?

    PROCEDURE REDIRECT_APPROVAL_LOG_INSERT(
vAPPROVAL_LOG_ID approval_redirect_log.approval_log_id%type,
vREDIRECTED_FROM APPROVAL_REDIRECT_LOG.redirected_from%type,
vREDIRECTED_TO APPROVAL_REDIRECT_LOG.redirected_to%type,
vREDIRECTED_BY approval_redirect_log.redirected_by%type) AS

  BEGIN

   INSERT INTO APPROVAL_REDIRECT_LOG(
     APPROVAL_LOG_ID,
     REDIRECTED_FROM,
     REDIRECTED_TO,
     REDIRECTED_BY,
     REDIRECTED_ON) 
  VALUES
  (select approval_log_id 
   from approval_log 
   where accept_reject is null and approval_recid=vREDIRECTED_FROM
   ,
  vREDIRECTED_FROM,
  vREDIRECTED_TO,
  vREDIRECTED_BY,
  sysdate
  );

  END REDIRECT_APPROVAL_LOG_INSERT;
4

1 に答える 1

2

あなたがすべき:

INSERT INTO APPROVAL_REDIRECT_LOG(
     APPROVAL_LOG_ID,
     REDIRECTED_FROM,
     REDIRECTED_TO,
     REDIRECTED_BY,
     REDIRECTED_ON) 
select    approval_log_id, 
          vREDIRECTED_FROM,
          vREDIRECTED_TO,
          vREDIRECTED_BY,
          sysdate
from approval_log 
where  
     accept_reject is null 
     and approval_recid=vREDIRECTED_FROM;
于 2013-01-15T12:49:18.927 に答える