Oracle ORA-06512:at.MAX\U MIN\U HIST”,第37行ORA-06512:at.1行

Oracle ORA-06512:at.MAX\U MIN\U HIST”,第37行ORA-06512:at.1行,oracle,plsql,Oracle,Plsql,执行上述代码会产生以下错误- ORA-00933:SQL命令未正确结束 ORA-06512:最大最小历史,第37行 ORA-06512:在第1行 交易日期采用“YYYY-MM-DD”格式 提前感谢替换此行: create or replace procedure MAX_min_hist as sql_stmt varchar2(4000); sql_stmt2 varchar2(4000); sql_stmt3 varchar2(4000); var_date_of_trade hist_da

执行上述代码会产生以下错误-

ORA-00933:SQL命令未正确结束 ORA-06512:最大最小历史,第37行 ORA-06512:在第1行

交易日期采用“YYYY-MM-DD”格式

提前感谢

替换此行:

create or replace procedure MAX_min_hist
as
sql_stmt varchar2(4000);
sql_stmt2 varchar2(4000);
sql_stmt3 varchar2(4000);
var_date_of_trade hist_data.date_of_trade%type;
sql_stmt4 varchar2(4000);
cursor c1 is SELECT date_of_trade FROM hist_data where date_of_trade>TO_DATE('2015-07-01','YYYY-MM-DD');
begin
open c1;
Loop 
fetch c1 into var_date_of_trade;
sql_stmt3 := 'CREATE OR REPLACE VIEW V_HIST_DATA AS SELECT * FROM HIST_DATA  WHERE DATE_OF_TRADE < ' || var_date_of_trade;


sql_stmt := 'create table MAX_min_hist_data as ( select * from (
SELECT 
CODE,
((CLOSE_PRICE-"Worst")/nullif("Worst",0))*100 Upper_from_down,
(("Best"-CLOSE_PRICE)/nullif(CLOSE_PRICE,0))*100 Down_from_Best,
"Worst",
"Best",
Close_Price
 from (
SELECT 
DISTINCT
CODE,
MIN(close_price) OVER (PARTITION BY CODE) "Worst",
MAX(close_price) OVER (PARTITION BY CODE) "Best",
first_value(close_price) over (PARTITION BY CODE order by date_of_trade desc) CLOSE_PRICE
FROM V_HIST_DATA

)
)
)';
sql_stmt2 := ' drop table MAX_min_hist_data';
execute immediate sql_stmt3;
execute immediate sql_stmt2;
execute immediate sql_stmt;

end loop;
end;
/



exec MAX_min_hist
关于这一点:

sql_stmt3 := 'CREATE OR REPLACE VIEW V_HIST_DATA AS SELECT * FROM HIST_DATA  WHERE DATE_OF_TRADE < ' || var_date_of_trade;
sql_stmt3 := 
    'CREATE OR REPLACE VIEW V_HIST_DATA AS ' 
   || 'SELECT * FROM HIST_DATA ' 
   || 'WHERE DATE_OF_TRADE < to_date( '''
   || to_char( var_date_of_trade, 'yyyy-mm-dd' )
   || ''', ''yyyy-mm-dd'' ) ';