---
title: "Oracle 8i trigger, hjälp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/databaser-sql/21873-oracle-8i-trigger-hjälp"
topic: "Databaser & SQL"
topic_url: "https://www.webforum.nu/amne/databaser-sql"
author: "MinOrk"
published: "2002-01-08T09:27:00.000Z"
updated: "2002-01-09T07:05:00.000Z"
replies: 3
views: 435
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/databaser-sql/21873-oracle-8i-trigger-hjälp"
---

# Oracle 8i trigger, hjälp

## #1 — MinOrk, 2002-01-08T09:27Z

Jag vill att när en användare lägger till en rad i tabellen tblObj så ska fältet pID sättas till samma värde som nID, oavsätt vad pID fick för värde vid INSERT-uttrycket.

Jag försöker göra så här:
CREATE OR REPLACE TRIGGER set_pid_to_nid
AFTER INSERT ON tblObj
FOR EACH ROW
BEGIN
   UPDATE OBJECTS
   SET pID = nID
   WHERE nID = :NEW.nID;
END;

Men får detta felmeddelande:
General SQL error.
ORA-04091: tabellen tblObj muterar, triggern/funktionen upptäcker den kanske inte
ORA-06512: vid "SET_PID_TO_NID"
rad 2
ORA-04088: fel vid körning av triggern 'SET_PID_TO_NID'

vad är det som går snett? Kan man kanske lösa "uppgiften" på ett bättre sätt?

DBMS är Oracle 8i.

Permalänk: https://www.webforum.nu/p/21873

## #2 — MinOrk, 2002-01-08T15:20Z

Ingen som kan hjälpa mig... 

i alla fall... kan man "typecast:a" en INTEGER (NUMBER) till en VARCHAR i Oracle eller måste applikationen ta hand om sånt?

Permalänk: https://www.webforum.nu/p/353612

## #3 — LarsG, 2002-01-08T15:52Z

Kan du inte lägga in det i en before row trigger i stället. Då borde du kunna tilldela värdet direkt.

```

CREATE OR REPLACE TRIGGER set_pid_to_nid
before INSERT ON tblObj
FOR EACH ROW
BEGIN
:new.pid := :new.nid;
end
```

För att konvertera från numeriskt till varchar2 så finns funktionen to_char

```
select to_char(num_column) from t
```

Permalänk: https://www.webforum.nu/p/353613

## #4 — MinOrk, 2002-01-09T07:05Z

Tack! Jag hade gjort en before row trigger också som inte fungerade, men jag ser nu mitt misstag... pinsamt. Men nu fungerar det som jag tänkt.

Permalänk: https://www.webforum.nu/p/353614

---

Tråden på webben: https://www.webforum.nu/amne/databaser-sql/21873-oracle-8i-trigger-hjälp
