oracle执行SQL语句时报选项缺失或无效

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle执行SQL语句时报选项缺失或无效相关的知识,希望对你有一定的参考价值。

PROMPT Creating Table 'INSTRUCTOR'
CREATE TABLE INSTRUCTOR
(INSTRUCTOR_ID NUMBER(8,0)
,SALUTATION VARCHAR2(5)
,FIRST_NAME VARCHAR2(25)
,LAST_NAME VARCHAR2(25)
,STREET_ADDRESS VARCHAR2(50)
,ZIP VARCHAR2(5)
,PHONE VARCHAR2(15)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
)

将下列语句放到 test.sql
PROMPT Creating Table 'INSTRUCTOR';
CREATE TABLE INSTRUCTOR
(INSTRUCTOR_ID NUMBER(8,0)
,SALUTATION VARCHAR2(5)
,FIRST_NAME VARCHAR2(25)
,LAST_NAME VARCHAR2(25)
,STREET_ADDRESS VARCHAR2(50)
,ZIP VARCHAR2(5)
,PHONE VARCHAR2(15)
,CREATED_BY VARCHAR2(30)
,CREATED_DATE DATE
,MODIFIED_BY VARCHAR2(30)
,MODIFIED_DATE DATE
);

然后在sqlplus 用@执行即可,结果如下:
SQL> @ test.sql;
Creating Table 'INSTRUCTOR'

表已创建。
参考技术A 第一句:
PROMPT Creating Table 'INSTRUCTOR'

是PLSQL工具自动生成的日志信息,把那行去除,下面才是建表语句
参考技术B PROMPT Creating Table 'INSTRUCTOR'
这个不用
oracle中prompt
打印功能,多用于提示信息。输入命令prompt tablename1;
标准输出为tablename1

Oracle 数据库中执行SQL语句 出现 [Err] ORA-00936: 缺失表达式! 但在SQL server 中可以使用 大家帮帮忙

select AAA.BMJC,(AAA.qf+AAA.sf) as YSBS,AAA.sf AS SSBS,convert(float(2),AAA.[sf])/convert(float(2),AAA.qf+AAA.sf) as cbl from(select com.BMJC BMJC, qf=(select count(*) from SF_YHXX Q where SUBSTRING(Q.BMBH,1,1) = com.BMBH),sf=(select count(*) from SF_SFXX Q where SUBSTRING(Q.BMBH,1,1) = com.BMBH and Q.MZBZ='0')from SF_QFXX qf,SYS_BMXX com where 1=1 and com.SZBS in (0,1) and SUBSTRING(qf.BMBH,1,1) = com.BMBH group by com.BMJC,com.BMBH) as AAA

convert在sqlserver中的作用与在oracle中的作用是不一样的
目测你想要的是保留两位小数
oracle中应该使用round(AAA.sf,2),round(AAA.qf+AAA.sf,2)
如果末尾的0也需要显示的话 使用to_char函数
不好意思,只提供了方法,其实把你的需求说出来更好一点,因为我也不太了解sqlserver
参考技术A float()不是Oracle的函数, oracle 中可以使用to_number()函数转换成整形

以上是关于oracle执行SQL语句时报选项缺失或无效的主要内容,如果未能解决你的问题,请参考以下文章

创建oracle数据库时,出现ORA-00922: 选项缺失或无效

oracle创建实例时出现ORA- 00922缺失或无效,忽略后出现ORA-28000账号已被锁定。

Oracle 数据库中执行SQL语句 出现 [Err] ORA-00936: 缺失表达式! 但在SQL server 中可以使用 大家帮帮忙

一个存储过程,报错如下 13 PL/SQL:ORA-00922:缺少或无效选项 13 PL/SQL:SQL Statement ignored

oracle导入表结构时报表空间不存在,该怎么解决?

Oracle数据库执行查询语句报错:无效数字。