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
)
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