Skip to Main Content

SQL & PL/SQL

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Plsql block can not use variable for timezone converter

Rajan SwApr 15 2024

set serveroutput on

DECLARE
region_date varchar2(100);
region varchar2(100);
region1 varchar2(100);

offset_result varchar2(100);
rc SYS_REFCURSOR;

BEGIN
-- region_date := '2013-04-07 01:59 Australia/Sydney';

region := 'utc';
region1 := 'est';

/*
for v_rec in cur_eh LOOP
offset_result := to_char(
from_tz(cast(v_rec.EventDate as timestamp), region)
AT TIME ZONE region1,'DD-MON-YYYY HH:MI:SS'); */

OPEN rc FOR SELECT to_char(
from_tz(cast(eh.EventDate as timestamp), region)
AT TIME ZONE region1,'DD-MON-YYYY HH:MI:SS') from cucifs2.EventHistory eh;

END;

getting the error

Error report -
ORA-00907: missing right parenthesis
ORA-06512: at line 21
00907. 00000 - "missing right parenthesis"
*Cause:
*Action:

however if i hard code it is working fine, is there any workaround apart from execute immediate.

I am using oracle "CORE 12.2.0.1.0 Production"

set serveroutput on

DECLARE
region_date varchar2(100);
region varchar2(100);
region1 varchar2(100);

offset_result varchar2(100);
rc SYS_REFCURSOR;

BEGIN
-- region_date := '2013-04-07 01:59 Australia/Sydney';

region := 'utc';
region1 := 'est';

/*
for v_rec in cur_eh LOOP
offset_result := to_char(
from_tz(cast(v_rec.EventDate as timestamp), region)
AT TIME ZONE region1,'DD-MON-YYYY HH:MI:SS'); */

OPEN rc FOR SELECT to_char(
from_tz(cast(eh.EventDate as timestamp), 'cst')
AT TIME ZONE 'est','DD-MON-YYYY HH:MI:SS') from cucifs2.EventHistory eh;

END;

This post has been answered by Solomon Yakobson on Apr 15 2024
Jump to Answer
Comments
Post Details
Added on Apr 15 2024
6 comments
357 views