From: | Pepe TD Vo <pepevo(at)yahoo(dot)com> |
---|---|
To: | Pgsql-admin <pgsql-admin(at)postgresql(dot)org> |
Subject: | query can't merge into table of the other schema |
Date: | 2018-11-07 15:10:25 |
Message-ID: | 1425722754.312953.1541603425493@mail.yahoo.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Hello,
Would you please tell me why I can't merge table from another schema? I have granted all the privilege from one to another.
this is procedure from Oracle:\CREATE OR REPLACE EDITIONABLE PROCEDURE"CIDR_STAGING"."PR_MIG_STG_DATE_IN" (
v_Ret OUT number )
as
v_ErrorCode number;
v_ErrorMsg varchar2(512);
v_Module varchar2(32) := 'PR_MIG_STG_DATE_IN';
begin
----
--MERGING: STG_DATE_IN into SC_DATE_IN
----
MERGE INTO cidrdba.sc_date_in prod
USING (
SELECT Receipt_Number,date_in,mig_filename,mig_insert_dt,mig_modified_dt
FROM cidr_staging.STG_Date_In
ORDER by mig_seq
) stg
ON (prod.receipt_number = stg.receipt_number )
WHENMATCHED THEN UPDATE SET
-- prod.Receipt_Number =stg.Receipt_Number,
prod.Date_In = stg.Date_In,
prod.mig_filename = stg.mig_filename,
--prod.mig_insert_dt = stg.mig_insert_dt,
--prod.mig_modified_dt = stg.mig_modified_dt
prod.mig_modified_dt = sysdate
WHENNOT MATCHED THEN INSERT
(
prod.Receipt_Number,
prod.Date_In,
prod.mig_filename,
prod.mig_insert_dt,
prod.mig_modified_dt
) VALUES (
stg.Receipt_Number,
stg.Date_In,
stg.mig_filename,
sysdate,
--stg.mig_insert_dt,
null
--stg.mig_modified_dt
)
;
---- -- Set the return code to 0
----
v_Ret := SQLCODE;
----
-- Exception error handler
----
exception
whenothers then
v_ErrorCode := SQLCODE;
v_ErrorMsg := SQLERRM;
v_Ret := v_ErrorCode;
----
-- Commit the record into theErrorLog
----
pr_write_error_log(sys_context('userenv','session_user'),
sys_context('userenv','host'),v_Module,
v_ErrorCode,v_ErrorMsg );
----
-- Intentionally leaving the"commit" to application
----
end;
/
I converted to Postgres:
CREATE OR REPLACE FUNCTION "CIDR_STAGING"."PR_MIG_STG_DATE_IN" (v_Ret OUT integer ) RETURNS integeras $$
declare v_ErrorCode integer; v_ErrorMsg varchar(512); v_Module varchar(32) := 'PR_MIG_STG_DATE_IN';begin
---- -- MERGING: STG_DATE_IN into SC_DATE_IN ---- MERGE INTO cidrdba.sc_date_in prod USING ( SELECT Receipt_Number,date_in, mig_filename,mig_insert_dt,mig_modified_dt FROM cidr_staging.STG_Date_In ORDER by mig_seq ) stg ON ( prod.receipt_number = stg.receipt_number ) WHEN MATCHED THEN UPDATE SET -- prod.Receipt_Number = stg.Receipt_Number, prod.Date_In = stg.Date_In, prod.mig_filename = stg.mig_filename, --prod.mig_insert_dt = stg.mig_insert_dt, --prod.mig_modified_dt = stg.mig_modified_dt prod.mig_modified_dt = sysdate WHEN NOT MATCHED THEN INSERT ( prod.Receipt_Number, prod.Date_In, prod.mig_filename, prod.mig_insert_dt, prod.mig_modified_dt ) VALUES ( stg.Receipt_Number, stg.Date_In, stg.mig_filename, sysdate, --stg.mig_insert_dt, null --stg.mig_modified_dt ) ;
---- -- Set the return code to 0 ---- v_Ret := SQLCODE;
------ Exception error handler---- exception when others then v_ErrorCode := SQLCODE; v_ErrorMsg := SQLERRM; v_Ret := v_ErrorCode;
---- -- Commit the record into the ErrorLog ----
-- RAISE NOTICE 'calling "pr_write_error_log"(%)',( sys_context('userenv','session_user'),PERFORM pr_write_error_log ( sys_context('userenv','session_user'), sys_context('userenv','host'), v_Module, v_ErrorCode, v_ErrorMsg );end;$$ LANGUAGE plpgsql;
ERROR: "cidrdba.sc_date_in" is not a known variableLINE 13: MERGE INTO cidrdba.sc_date_in prod ^SQL state: 42601Character: 352 thank you.Bach-Nga
No one in this world is pure and perfect. If you avoid people for their mistakes you will be alone. So judge less, love and forgive more.To call him a dog hardly seems to do him justice though in as much as he had four legs, a tail, and barked, I admit he was, to all outward appearances. But to those who knew him well, he was a perfect gentleman (Hermione Gingold)
**Live simply **Love generously **Care deeply **Speak kindly.*** Genuinely rich *** Faithful talent *** Sharing success
From | Date | Subject | |
---|---|---|---|
Next Message | Pepe TD Vo | 2018-11-07 18:34:11 | for loop |
Previous Message | Tom Lane | 2018-11-07 14:48:24 | Re: PostgreSQL 10.5 : Strange pg_wal fill-up, solved with the shutdown checkpoint |