Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 关联数组和sysdate_Oracle - Fatal编程技术网

Oracle 关联数组和sysdate

Oracle 关联数组和sysdate,oracle,Oracle,我有查询构建plsql代码。我使用绑定变量和关联数组来存储它们的值。诸如此类: declare type myt table of varchar2(4000) index by varchar2(100); vars myt; v_cursor integer; newQuery varchar2(1000) := 'select * from blabla where '; bind_key varchar2(100); rows_count

我有查询构建plsql代码。我使用绑定变量和关联数组来存储它们的值。诸如此类:

declare
    type myt table of varchar2(4000) index by varchar2(100);
    vars myt;
    v_cursor integer;
    newQuery varchar2(1000) := 'select * from blabla where ';
    bind_key varchar2(100);
    rows_count integer;
begin
    -- query building
    if 1=1 then
        newQuery := newQuery || 'col1 = :bind_col1';
        vars(':bind_col1') := sysdate; -- problem!!!
    end if;
    ....
    -- query execution
    v_cursor := dbms_sql.open_cursor;
    dbms_sql.parse(v_cursor, newQuery, dbms_sql.v7);
    bind_key := vars.first;
    loop
        exit when bind_key is null;
        dbms_sql.bind_variable(v_cursor, bind_key, vars(bind_key));
        bind_key := vars.next(bind_key);
    end loop;
    row_count := dbms_sql.execute(v_cursor);
    dbms_sql.close_cursor(v_cursor);
end;

是否有比
varchar2
更通用的类型,因此不会进行转换
date->varchar2->date

dbms\u sql.bind\u variable
可以绑定的变量。但是,您不能声明
的表(例如,它在逻辑上等同于java中的
对象[]

使用VARCHAR2时,可以使用双射显式转换,例如:

newQuery := newQuery || 'col1 = to_date(:bind_col1, ''yyyymmdd hh24:mi:ss'')';
vars(':bind_col1') := to_char(sysdate, 'yyyymmdd hh24:mi:ss');

dbms\u sql.bind\u变量
可以绑定的变量。但是,您不能声明
的表(例如,它在逻辑上等同于java中的
对象[]

使用VARCHAR2时,可以使用双射显式转换,例如:

newQuery := newQuery || 'col1 = to_date(:bind_col1, ''yyyymmdd hh24:mi:ss'')';
vars(':bind_col1') := to_char(sysdate, 'yyyymmdd hh24:mi:ss');