Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.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文件?_Sql_Oracle - Fatal编程技术网

如果条件为真,如何根据调用另一个sql文件?

如果条件为真,如何根据调用另一个sql文件?,sql,oracle,Sql,Oracle,下面列出了我使用的代码。但它抛出了ORA-00972:标识符太长 Declare n number(2); BEGIN n := 10; if(n > 0) then @'C:\giddo.sql'; end if; END; / Giddo.sql由以下代码组成 SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON HEAD "<TITLE>Reports</

下面列出了我使用的代码。但它抛出了ORA-00972:标识符太长

Declare

n number(2);

BEGIN

    n := 10;


    if(n > 0) then

         @'C:\giddo.sql';

    end if;

END;

/
Giddo.sql由以下代码组成

SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON HEAD "<TITLE>Reports</TITLE> 

<STYLE type='text/css'>tr{background-color:#E4EAF7;font-weight: Bold;color:#BLACK;text-decoration:none;font-family:Calibri;font-size: 14px;text-align:left;caption-side:top;align:left;} td{border-color:white;padding:0;background:#FFFFFF;font-family:Calibri;font-size: 13px;font-weight: normal;color: BLACK;text-decoration: none;text-align:left} BODY {padding:1;background:#ffffff;font-weight: Bold;color:#004fa3;text-decoration:none;font-family:Calibri;font-size: 15px;text-align:left; margin:20 0 0 20;} th{align:left;text-align:left;color:black}</STYLE>" TABLE "cellspacing=1 cellpadding=1 border=1 width=100%"

set linesize 10000
SET PAGESIZE 10000 
set feedback off
set serveroutput on;


spool C:\Popot.html append ;


 BEGIN
   DBMS_OUTPUT.PUT_LINE('<-------------------------------------------This is a test line--------------------------------------------------->');
   END;
 /



spool off

SET markup HTML off


/
SET MARKUP HTML ON SPOOL ON PREFORMAT OFF ENTMAP ON HEAD”报告
tr{背景色:#E4EAF7;字体大小:粗体;颜色:#黑色;文本装饰:无;字体系列:Calibri;字体大小:14px;文本对齐:左;标题侧:顶部;对齐:左;}td{边框颜色:白色;填充:0;背景:#FFFFFF;字体系列:Calibri;字体大小:13px;字体大小:正常;颜色:黑色;文本装饰:无;文本对齐:左}正文{填充:1;背景:#ffffff;字体大小:粗体;颜色:#004fa3;文本装饰:无;字体系列:Calibri;字体大小:15px;文本对齐:左;边距:20 0 0;第}个{对齐:左;文本对齐:左;颜色:黑色}“表格”单元格间距=1单元格填充=1边框=1宽度=100%”
设置行大小10000
设置页面大小10000
引发反馈
打开服务器输出;
假脱机C:\Popot.html追加;
开始
DBMS_OUTPUT.PUT_行(“”);
结束;
/
停止输出
关闭标记HTML
/

检查
giddo.sql
中的sql语句以了解您的问题

Oracle对表名和列名都施加了128个字符的限制,您似乎已经超过了这个限制

列别名将减少列名

例如:

SQL> select distinct office_id "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit" from test;
select distinct office_id "Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit" from test
                          *
ERROR at line 1:
ORA-00972: identifier is too long 
我创建了一个包含以下内容的文件
ttt.sql

BEGIN
   DBMS_OUTPUT.PUT_LINE('<-------------------------------------------This is a test line--------------------------------------------------->');
 END;
开始
DBMS_OUTPUT.PUT_行(“”);
结束;
并将其作为:

SQL> set serverout on
SQL> DECLARE
  2     n   NUMBER (2);
BEGIN
  3     n := 10;

  4  
   IF (n > 0)
  5     THEN
  6        @ttt.sql;
  7     --dbms_output.put_line('Hi');
  8   
   END IF;
END; 
 /
<-------------------------------------------This is a test
line--------------------------------------------------->

PL/SQL procedure successfully completed.
SQL>在上设置服务器
SQL>声明
2n数(2);
开始
3N:=10;
4.
如果(n>0)
那么
6@ttt.sql;
7——dbms_output.put_行('Hi');
8.
如果结束;
结束;
/
PL/SQL过程已成功完成。

是的,如果你能做到的话。我在没有
的情况下尝试了你的脚本。你是说你在没有整个css的情况下尝试了它……请发布输出的快照