Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Führen Sie SQL-Code mit Variablen im Oracle SQL Developer-Codefenster aus

Wenn ich das richtig lese, suchen Sie vermutlich nach Oracle Substitutionsvariablen.

Dadurch werden Sie jedes Mal aufgefordert, die Werte einzugeben. Wenn Sie &val verwenden, werden Sie aufgefordert, @runtime

einzugeben
  SELECT
      CFS.CAE_SEC_ID,
      CFS.FM_SEC_CODE,
      CFS.LAST_USER_ID,
      CASE 
          when &p_USBank_n = 1 then
            sl.usbank_to_edit
          else
            CASE 
              when '&p_user_id_c' = CFS.last_user_id then
                sl.owner_to_edit
              else
                sl.to_edit
            end
        end canEdit
    FROM
    CAEDBO.CAE_FOF_SECURITY CFS
    INNER JOIN caedbo.CAE_DATA_SET_ELEMENT CDSE_STAT 
        ON (CDSE_STAT.DATA_SET_ELEMENT_ID = CFS.APPR_STATUS)
    INNER JOIN caedbo.CAE_STATE_LOOKUP sl 
        ON (sl.object_state =  CDSE_STAT.data_set_element_id)
   where 
      CFS.CAE_SEC_ID IN (3741, 3744, 3748, 3752);

ändern Sie es in &&var, damit es den Wert behält, und verwenden Sie dann

UNDEFINE var 

löschen

Jetzt können Sie diese oben auf der Seite setzen (wodurch die Eingabeaufforderung vermieden wird), indem Sie DEFINE als solches verwenden

DEFINE XYZ = 5
DEFINE AAA = to_date('10/10/2010','mm/dd/rrrr')
DEFINE textString = AaBbCc

SELECT &&XYZ b, &&AAA a, '&&textString' textString
  from dual ;

  B                      A                         TEXTSTRING 
  ---------------------- ------------------------- ---------- 
  5                      10.OCT.2010 00:00         AaBbCc     
  --typing define will show you all the "defined" values 
define

  DEFINE XYZ = "5"
  DEFINE TEXTSTRING = "AaBbCc"
  DEFINE AAA = "to_date('10/10/2010','mm/dd/rrrr')"

das doppelte kaufmännische Und behält den Wert bei, bis Sie ihn AUFHEBEN (siehe oben) oder neu definieren.