carli...@gmail.com
unread,Mar 19, 2013, 1:13:56 PM3/19/13You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to
Hi, I have a code with this lines:
[code]
create or replace procedure update_potencia
IS CURSOR from_table
IS SELECT table_name
FROM user_tables
WHERE table_name LIKE '%AVE';
v_from_table from_table%ROWTYPE;
source_cursor INTEGER;
ignore INTEGER;
BEGIN
OPEN from_table;
LOOP
FETCH from_table INTO v_from_table;
EXIT WHEN from_table%NOTFOUND;
source_cursor := DBMS_SQL.OPEN_CURSOR ;
DBMS_SQL.PARSE(source_cursor,
'INSERT INTO noa_ave_max_pot (Pointnumber,
hora_max_rtc, valor_max_rtc,
hora_noa, valor_noa,
hora_max_noa, valor_max_noa )
(SELECT a.pointnumber pointnumber,
a.utctimemax hora_max_rtc, valor_max_rtc a.value,
b.utctime hora_ave, b.VALUE valor_ave,
c.utctime hora_max_ave, c.VALUE value_max_ave
FROM rtc_estaciones a, ' || v_from_table.table_name ||' b,
' || v_from_table.table_name ||' c
WHERE A.value IN (SELECT MAX (VALUE)
FROM rtc_estaciones )
AND C.VALUE IN (SELECT MAX (VALUE)
FROM ' || v_from_table.table_name ||'
WHERE utctime BETWEEN SYSDATE - 3 AND SYSDATE - 2)
AND A.utctimemax BETWEEN SYSDATE - 3 AND SYSDATE - 2
AND B.utctime BETWEEN SYSDATE - 3 AND SYSDATE - 2
AND C.utctime BETWEEN SYSDATE - 3 AND SYSDATE - 2
AND a.utctimemax = b.utctime)',DBMS_SQL.NATIVE );
ignore := DBMS_SQL.EXECUTE (source_cursor);
DBMS_SQL.CLOSE_CURSOR (source_cursor);
END LOOP;
CLOSE from_table;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.put_line ('Last Error: ' || DBMS_SQL.LAST_ERROR_POSITION ());
DBMS_SQL.close_cursor (source_cursor);
RAISE;
END;
[code]
but when run I see this error:
SQL>/
DECLARE
*
ERROR at line 1:
ORA-00923: FROM keyword not found where expected
ORA-06512: at "SYS.DBMS_SYS_SQL", line 909
ORA-06512: at "SYS.DBMS_SQL", line 39
ORA-06512: at line 20
I have the necessary permissions for execution on them but I can not see the contents of these packages, because they are wrapped.
"SYS.DBMS_SYS_SQL"
"SYS.DBMS_SQL"
They could tell me any indication that change to avoid the error?
Thank you very much.!
Objective: from a range of tables, for maximum and time / date, with maximum value and time / date of a 2nd table, along with another couple of data value, date / time of it, and then insert the result in a 3rd table.
[code]
Oracle version 10.2.0.3.0
SQL> desc noa_ave --> || v_from_table.table_name || --> table range
SQL> describe noa_ave
Name Null? Type
-------- UTCTIME NOT NULL DATE
POINTNUMBER NOT NULL NUMBER(38)
VALUE FLOAT(126)
TLQ NUMBER(38)
SQL> describe rtc_estaciones
Name Null? Type
-------- UTCTIME NOT NULL DATE
POINTNUMBER NOT NULL NUMBER(38)
VALUE FLOAT(126)
TLQ NUMBER(38)
UTCTIMEMAX DATE
SQL> desc noa_ave_max_pot
Name Null? Type
-------- POINTNUMBER NOT NULL NUMBER(38)
HORA_MAX_RTC NOT NULL DATE
VALOR_MAX_RTC FLOAT(126)
HORA_NOA NOT NULL DATE
VALOR_NOA FLOAT(126)
HORA_MAX_NOA NOT NULL DATE
VALOR_MAX_NOA FLOAT(126)
SQL>
[code]