如果条件为真,如何根据调用另一个sql文件?
下面列出了我使用的代码。但它抛出了ORA-00972:标识符太长如果条件为真,如何根据调用另一个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</
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的情况下尝试了它……请发布输出的快照