2 Domande separate.eliminazione di una tabella temporanea globale
Sto usando questo script per eliminare una tabella [risolto]
BEGIN EXECUTE IMMEDIATE 'DROP TABLE_NAME'; DBMS_OUTPUT.PUT_LINE ('Global table TABLE_NAME Dropped'); EXCEPTION WHEN OTHERS THEN DBMS_OUTPUT.PUT_LINE ('Global table TABLE_NAME Doesn''t exist.'); END; /
C'è qualche cosa che posso distinguere se la tabella "non esiste" o viene utilizzato in qualche altre sessioni (in quel caso sarebbe bloccato e non può essere cancellato). Non sono sicuro di poter vedere che la tabella esista in user_tables. Non sono completamente a conoscenza delle autorizzazioni.
Ho aggiunto questo codice ora
WHEN OTHERS THEN
i_code := SQLCODE;
v_errm := SUBSTR(SQLERRM, 1, 64);
if i_code = -942 THEN
DBMS_OUTPUT.PUT_LINE ('TABLE_NAME doesn''t exist. Script will continue to create it');
ELSE
DBMS_OUTPUT.PUT_LINE ('Error dropping temporary table. The error code is ' || i_code || '- ' || v_errm);
END IF ;
2. vedo . al termine di ogni procedura come questa
END PROCEDURE_NAME;
.
/
sho err;
io proprio non capisco perché . è qui. È sintassi o cosa?
Il tavolo è davvero un tavolo temporaneo globale? ('crea una tabella temporanea globale ....') In caso affermativo, perché la lasci cadere? Questa parte di uno script di installazione? In caso contrario, forse un tavolo temporaneo globale potrebbe soddisfare le tue esigenze, senza bisogno di lasciarlo cadere. –
bene ci siamo imbattuti in problema "già esistente" e in qualche modo, non è stato confermato da ambiente di productino qual è lo stato della tabella. Questa tabella non fa parte dello script di installazione fa parte di una procedura separata. –
Non capisco, perché hai incontrato un problema già esistente con una tabella temporanea globale. La tabella dovrebbe già esistere e il codice usa (inserire, eliminare, aggiornare, ecc.). –