J'essaie de créer un déclencheur qui copie un objet blob de la table B
dans la ligne nouvellement créée dans la table A
. Cependant, j'obtiens l'erreur ORA-22275
(locateur lob invalide spécifié) lorsque le déclencheur est supposé être exécuté. Je peux imaginer la façon dont j'accède au blob de la nouvelle rangée n'est pas la bonne manière, quelqu'un pourrait-il m'indiquer dans la bonne direction?Localisateur de lob sur une nouvelle ligne dans un déclencheur
Code de la gâchette:
CREATE OR REPLACE TRIGGER COPY_BLOB
BEFORE INSERT ON TABLE_A
FOR EACH ROW
DECLARE
src blob;
BEGIN
SELECT bytes INTO src FROM table_b WHERE id = :new.ref_id;
DBMS_LOB.COPY(:new.bytes, src, DBMS_LOB.GETLENGTH(src), 1, 1);
END;
/
Merci, votre énoncé fonctionne. Y a-t-il une différence de vitesse? L'instruction 'select' ou' DMBS COPY' est-elle plus rapide? –
@Teinacher la sélection serait plus rapide (oracle copierait le lob sous les couvertures pour vous) – DazzaL