I am novice to Postgres. Here is the structure and some sample data for my table job_defn:
CREATE TABLE job_defn (
job_id INTEGER NOT NULL,
job_name CHARACTER VARYING(255) NOT NULL,
system CHARACTER VARYING(50) NOT NULL,
frequency CHARACTER VARYING(10) NOT NULL,
run_day_id INTEGER NOT NULL,
run_day_of_month INTEGER NOT NULL,
eff_start_date DATE NOT NULL,
eff_end_date DATE NOT NULL
);
Sample data:
---------------------------
job_id frequency
---------------------------
1001 DAILY
1002 WEEKLY
---------------------------
When running the following function, I was expecting the l_freq variable to contain frequency column value from the table. However, it is always printing NULL even though the table row contains a value:
CREATE OR REPLACE FUNCTION testing()
RETURNS void AS $$
DECLARE
l_job_id INTEGER;
l_job_defn_record job_defn%ROWTYPE;
l_freq CHARACTER VARYING(10);
BEGIN
FOR l_job_defn_record IN
SELECT job_id, frequency FROM job_defn ORDER BY job_id ASC
LOOP
l_job_id := l_job_defn_record.job_id;
l_freq := l_job_defn_record.frequency;
raise info'job id: %, frq: %', l_job_id, l_freq;
raise info'row==>%', l_job_defn_record;
END LOOP;
END;
$$ LANGUAGE plpgsql VOLATILE;
Log:
17:50:52 [CREATE - 0 row(s), 0.036 secs] Command processed. No rows were affected
Code: 0 SQL State: 00000 --- job id: 10001, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10001,DAILY,,,,,,,,,,)
Code: 0 SQL State: 00000 --- job id: 10001, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10001,DAILY,,,,,,,,,,)
Code: 0 SQL State: 00000 --- job id: 10001, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10001,DAILY,,,,,,,,,,)
Code: 0 SQL State: 00000 --- job id: 10001, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10001,DAILY,,,,,,,,,,)
Code: 0 SQL State: 00000 --- job id: 10001, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10001,DAILY,,,,,,,,,,)
Code: 0 SQL State: 00000 --- job id: 10001, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10001,DAILY,,,,,,,,,,)
Code: 0 SQL State: 00000 --- job id: 10001, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10001,DAILY,,,,,,,,,,)
Code: 0 SQL State: 00000 --- job id: 10002, frq: <NULL>
Code: 0 SQL State: 00000 --- row==>(10002,WEEKLY,,,,,,,,,,)
... 1 statement(s) executed, 0 row(s) affected, exec/fetch time: 0.036/0.000 sec [0 successful, 1 warnings, 0 errors]
\d job_defnin psql)