如何使用子查询将局部变量添加到 PL/SQL INSERT INTO

How to add local variable to PL/SQL INSERT INTO using subquery

我有一个 Oracle PL/SQL 问题。我有一个 INSERT INTO 可以正常工作:

DECLARE
   l_filename   VARCHAR2 (1024);      
BEGIN
   l_filename := 'some value';
     INSERT INTO aff_attach
        (file_id, file_name, mime_type, attachment, file_size)
        SELECT ID, l_filename, mime_type, blob_content,DOC_SIZE
          FROM apex_application_files
          WHERE filename = l_filename AND created_by = :app_user;
END:

现在,在同一个 INSERT INTO 语句中,我想将另一个字段包含到 aff_attach (AFF_EVENT_FKEY) 中。该值不会来自 SELECT 语句。如果我定义了 l_aff_event_fkey,并且在 Insert 语句之前我分配了 l_aff_event_fkey 值 9,我如何将它包含在 Insert Into 语句中? 感谢您查看此内容。

可以添加到SELECT语句中(作为SELECT中的常量):

DECLARE

   l_filename   VARCHAR2 (1024);
   v_aff_event_fk NUMBER;

BEGIN
   l_filename := 'some value';
   v_aff_event_fk := 9;

     INSERT INTO aff_attach
        (file_id, file_name, mime_type, attachment, file_size, AFF_EVENT_FKEY)
        SELECT ID, l_filename, mime_type, blob_content,DOC_SIZE, v_aff_event_fk
          FROM apex_application_files
          WHERE filename = l_filename AND created_by = :app_user;
END: