sql - ओरेकल ट्रिगर में शामिल करें...(SELECT *...)




oracle plsql (4)

अंदर डालें के साथ ट्रिगर (* चुनें ...)

मैं इसे कोशिश कर रहा हूँ

INSERT INTO T_ USERS SELECT * FROM USERS WHERE ID = :new.ID;

काम नहीं कर रहा...

इस काम।

INSERT INTO T_USERS(ID) VALUES(:new.ID);

उत्प्रेरक

create or replace trigger "TRI_USER"
AFTER
insert on "USER"
for each row
begin
INSERT INTO T_USER SELECT * FROM USER WHERE ID = :new.ID;
end;​

Answers

शायद आप वास्तविक त्रुटि जो आप अनुभव कर सकते हैं पोस्ट कर सकते हैं?

इसके अलावा, मैं सुझाव देता हूं कि आप अपने दृष्टिकोण को पुनर्विचार ट्रिगर जिसमें डीएमएल होते हैं, सभी प्रकार के मुद्दों को पेश करते हैं। ध्यान रखें कि ओरेकल डाटाबेस को ट्रिगर को पुनरारंभ करने की आवश्यकता हो सकती है, और इसलिए एक विशेष पंक्ति के लिए आपके डीएमएल कई बार निष्पादित कर सकता है।

इसके बजाय, अपने सभी संबंधित डीएमएल विवरणों को एक पीएल / एसक्यूएल प्रक्रिया में एक साथ रखकर उसको लागू करें।


इस काम।

INSERT INTO T_USERS(ID) VALUES(:new.ID);

तो अगर यह आप के लिए फिट बैठता है तो यह कोशिश करें:

INSERT INTO T_USER(ID) SELECT ID FROM USER WHERE ID = :new.ID;

यदि आप किसी अन्य तालिका से एक या अधिक पंक्तियां चुनना चाहते हैं, तो आपको इस वाक्यविन्यास का उपयोग करना होगा:

insert into <table>(<col1>,<col2>,...,<coln>)
select <col1>,<col2>,...,<coln>
from ...;

यह आपके ट्रिगर के बारे में नहीं है, लेकिन INSERT स्टेटमेंट के कारण

यहां सम्मिलित वक्तव्य नीचे के रूप में कार्य करता है

INSERT INTO <TABLE>(COL1,COL2,COL3) VALUES (VAL1,VAL2,VAL3);  --> If trying to populate value 1 by one.

INSERT INTO <TABLE>(COL1,COL2,COL3) --> If trying to insert mult vales at a time
SELECT VAL1,VAL2,VAL3 FROM <TABLE2>;

मूल्यों की संख्या को वर्णित संख्या के साथ मिलना चाहिए।

आशा है कि यह आपको समझने में मदद करेगा


वर्तमान उपयोगकर्ता के लिए टेबल का चयन करने के लिए सरल क्वेरी:

  SELECT table_name FROM user_tables;






sql oracle plsql