Je suis novice dans les scripts Oracle et j'ai des problèmes avec l'insertion de données dans une table temporaire globale. Voici le script que j'ai créé dans Toad:INSERT ne fonctionne pas sur GLOBAL TEMPORARY TABLE dans un bloc PL/SQL
SET SERVEROUTPUT ON;
DECLARE
tempTwwIDExist NUMBER;
v_sql LONG;
BEGIN
SELECT COUNT(*) INTO tempTwwIDExist FROM USER_TABLES WHERE table_name = UPPER('tempTwwID');
DBMS_OUTPUT.PUT_LINE(tempTwwIDExist);
IF (tempTwwIDExist > 0) THEN
BEGIN
EXECUTE IMMEDIATE 'TRUNCATE TABLE tempTwwID';
EXECUTE IMMEDIATE 'DROP TABLE tempTwwID';
END;
END IF;
EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE tempTwwID (id NUMBER NOT NULL, SITEID NUMBER) ON COMMIT DELETE ROWS';
EXECUTE IMMEDIATE 'INSERT INTO tempTwwID (id, SITEID) VALUES (1,123)';
END;
/
Cependant, quand je lance une instruction SELECT pour obtenir toutes les données de tempTwwID, maintenant lignes sont renvoyées en dépit de l'instruction INSERT ce script est exécuté en utilisant EXECUTE IMMEDIATE (dernière ligne de code avant FIN;).
J'espère que vous pouvez m'aider avec ceci. Merci d'avance.
Voulez-vous imprimer les lignes de la table tempTwwID? – Buddi
Comment lancez-vous votre script? Exécutez-vous le script et interrogez-vous la table dans la même session? – pablomatico
Ne pas tronquer, supprimer ou créer des GTT dans le code de l'application. –