0
votes

Comment puis-je stocker des valeurs à partir d'une seule colonne en une seule variable dans Oracle?

Le ci-dessous est mon code: xxx pré>

Sélectionnez EventTypeq à partir de EPS_FRS_PAYments code> retournera 4 valeurs. Donc, je ne peux pas faire un simple sélectionner. P>

Je souhaite stocker le résultat de Sélectionnez EventTypeq à partir de eps_frrs_payments CODE> dans une variable et apportez le code comme ci-dessous, de sorte que la sous-requête n'est pas exécutée à chaque fois. p> xxx pré>

Sélectionnez Eventypeq à partir de EPS_FRS_PAYMENTS CODE> Renvoie quatre valeurs: P>

1,
2,
3,
4,


1 commentaires

Oui une collection avec en vrac sélectionnez dans est la voie à suivre


4 Réponses :


0
votes

Créer le type s'il n'existe pas xxx pré>

il s'agit d'un tableau p>

et d'utilisation dans pl / sql p>

declare
v_frseventpeseqs t_number1;
begin
    SELECT EVENTTYPESEQ bulk collect 
    into v_frseventpeseqs 
    FROM EPS_FRS_PAYMENTS;

    for i in (select t.column_value id from table(v_frseventpeseqs) t)
    loop
        dbms_output.put_line(i.id );
    end loop;

end;


0 commentaires

0
votes

Vous pouvez utiliser la clause avec la clause. L'avantage est que les références répétées à une sous-requête peuvent être plus efficaces car les données sont facilement récupérées à partir d'une table temporaire plutôt que d'être demandée par chaque référence.

WITH eventtypeseq_query AS 
     (SELECT EVENTTYPESEQ 
      FROM EPS_FRS_PAYMENTS)
SELECT
       /*+ parallel (sales 8) */   
       COUNT(1)
INTO v_datacount_actualtable
FROM sales
WHERE processingunitseq=38
  AND (compensationdate BETWEEN TO_DATE(v_startdate,'DD-MON-YYYY') AND TO_DATE(v_enddate,'DD-MON-YYYY')
        OR eventtypeseq IN eventtypeseq_query);


0 commentaires

0
votes

Etant donné que

SELECT EVENTTYPESEQ FROM EPS_FRS_PAYMENTS


0 commentaires

0
votes

Utiliser existe est toujours meilleur en termes de performances par rapport à l'utilisation de dans . De plus, si vous écrivez cette requête pour exécuter régulièrement dans l'environnement en direct, il est suggéré de ne pas utiliser de conseils comme / * + parallèle * / . Les astuces ne doivent être utilisées que pour les requêtes ad hoc.

J'ai réécrit votre requête ci-dessous en utilisant Existe : xxx


0 commentaires