Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.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
Sql 如何在oracle中传递带有sys_日期的变量_Sql_Oracle_Variables_Plsql_Parameter Passing - Fatal编程技术网

Sql 如何在oracle中传递带有sys_日期的变量

Sql 如何在oracle中传递带有sys_日期的变量,sql,oracle,variables,plsql,parameter-passing,Sql,Oracle,Variables,Plsql,Parameter Passing,我想将sysdate传递到V_TODAY变量中,我可以将它用于其他异常块或假脱机期间。我在写下面的代码,这是给一个错误有V_今天必须声明。对于具有值名称和ID的变量,我可以传递值 SET ECHO OFF; SET FEEDBACK OFF; SET HEAD OFF; SET LIN 256; SET TRIMSPOOL ON; SET WRAP OFF; SET PAGES 100; SET TERM OFF; SET SERVEROUTPUT ON; SPOOL F:\LATEST\Lo

我想将sysdate传递到V_TODAY变量中,我可以将它用于其他异常块或假脱机期间。我在写下面的代码,这是给一个错误有V_今天必须声明。对于具有值名称和ID的变量,我可以传递值

SET ECHO OFF;
SET FEEDBACK OFF;
SET HEAD OFF;
SET LIN 256;
SET TRIMSPOOL ON;
SET WRAP OFF;
SET PAGES 100;
SET TERM OFF;
SET SERVEROUTPUT ON;

SPOOL F:\LATEST\Loop_TRE.sql;

PROMPT VAR NAME VARCHAR2(100);
PROMPT VAR ID VARCHAR2(100);
PROMPT VAR V_TODAY date;

BEGIN  
FOR TARGET_POINTER IN (SELECT NAME, ID from D_URL)
    LOOP
    DBMS_OUTPUT.PUT_LINE('DEFINE TARGET = '''||TARGET_POINTER.NAME||''';');
    DBMS_OUTPUT.PUT_LINE('EXEC :NAME  := '''||TARGET_POINTER.NAME||'''; ');
    DBMS_OUTPUT.PUT_LINE('DEFINE TARGET1 = '''||TARGET_POINTER.ID||''';');
    DBMS_OUTPUT.PUT_LINE('EXEC :ID  := '''||TARGET_POINTER.ID||'''; ');
    DBMS_OUTPUT.PUT_LINE('@@TGT_DOP.sql;');
  END LOOP;
  Select SYS_DATE INTO V_TODAY from DUAL;
  DBMS_OUTPUT.PUT_LINE('DEFINE V_TODAY = '''||V_TODAY||''';');
  DBMS_OUTPUT.PUT_LINE('EXEC :V_TODAY  := '''||V_TODAY||'''; ');
  DBMS_OUTPUT.PUT_LINE('@@Loop_TST.sql;');
END;
/

SPOOL OFF;

@@Loop_TRE.sql;

今天在Declare块中声明V_,并使用
SYSDATE
而不是SYS_DATE

参照您的代码:

SET ECHO OFF;

.
.
PROMPT VAR NAME VARCHAR2(100);
PROMPT VAR ID VARCHAR2(100);

DECLARE
V_TODAY DATE;
BEGIN
....
...
END LOOP;
Select SYSDATE INTO V_TODAY from DUAL;

...
...

您是否尝试在匿名块中声明
V_TODAY
而不是提示?不,我不是仅声明提示。我可以在TGT_DOP.sqlname和id中使用变量value。您的sys_date不是sysdste,并且倾向于同意vtoday应该是into工作的变量,你没有where子句与你的问题无关,但是你的where子句结尾不正确?@KaushikNayak我已经纠正了它的复制粘贴问题我不能在这里声明,因为我在使用假脱机,它会抛出错误。如您所见,我无法毫无问题地传递Name和ID的变量,并在TGT_DOP.sql中使用它。所以我不明白为什么我今天不能。我也从SYS_DATE更改为SYSDATE,但仍然相同error@Andrew:您可以使用的名称和Id,因为默认情况下,这些是目标\指针的属性。这些不是来自于声明。