PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

Oracle प्रक्रिया को PostgreSQL में पोर्ट करना

मुझे नहीं लगता कि Postgres उस अद्यतन निर्माण का समर्थन करता है (मैंने जिस सरल परीक्षण की कोशिश की वह उसी त्रुटि के साथ विफल हो जाता है)। आपको कुछ ऐसा करना पड़ सकता है:

CREATE OR REPLACE FUNCTION DATA_UPDATE
  (mission NUMERIC,
   task NUMERIC)
   RETURNS void as '
DECLARE
   offScheduled int4;
   totalReceivers int4; 
BEGIN
IF mission IS NOT NULL THEN
  select COALESCE(SUM(RR.TRQ_FUEL_OFFLOAD),0),
  COALESCE(SUM(RR.TRQ_NUMBER_RECEIVERS),0) into offScheduled, totalReceivers 
  FROM REFUELING_REQUEST RR, MISSION_REQUEST_PAIRING MRP
             WHERE MO.MSN_INT_ID = MRP.MSN_INT_ID
               AND MO.MO_INT_ID = MRP.MO_INT_ID
               AND MRP.REQ_INT_ID = RR.REQ_INT_ID;

 UPDATE MISSION_OBJECTIVE MO
     SET MO.MO_TKR_TOTAL_OFF_SCHEDULED = offScheduled,
          MO.MO_TKR_TOTAL_RECEIVERS = totalReceivers 
     WHERE MO.MSN_INT_ID = mission
     AND MO.MO_INT_ID = task ;
END IF;
END;
' LANGUAGE plpgsql;

... यह मानते हुए कि मैंने तर्क को बहुत खराब नहीं किया है;)

मैंने मापदंडों को परिभाषित करने के तरीके और रिटर्न प्रकार को बदलने की स्वतंत्रता ली (क्योंकि ऐसा लगता है कि आप वास्तव में फ़ंक्शन से कुछ भी वापस नहीं कर रहे हैं?)

संपादित करें:ओह, मैंने select into . के लिए गलत निर्माण का उपयोग किया है ...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL क्वेरी -- कॉलम मौजूद नहीं है

  2. डेटा एडेप्टर का उपयोग करते हुए अद्यतन करते समय DBConcurrency अपवाद हुआ

  3. स्प्रिंग बूट ऐप कुबेरनेट्स सीक्रेट से क्रेडेंशियल्स का उपयोग करके PostgreSQL तक नहीं पहुंच सकता है

  4. कुप्पी-SQLAlchemy लोअर केस इंडेक्स - कार्यात्मक लंघन, SQLAlchemy प्रतिबिंब द्वारा समर्थित नहीं है

  5. jsonb बनाम jsonb[] एक ग्राहक के लिए एक से अधिक पतों के लिए