******这条SQL为什么不能执行,解决立即给分*****
表结构如下:
create table T1
(
SID VARCHAR2(10),
SNAME VARCHAR2(20),
VAL1 VARCHAR2(20),
VAL2 NUMBER,
VAL3 DATE
)
create table T2
(
SID VARCHAR2(10),
VAL1 DATE
)
表T1内容如下:
1 Insert into t1 values ('a','aa','aa1',1,to_date('2003-03-03','yyyy-mm-dd'))
2 Insert into t1 values ('b','bb','bb1',1,to_date('2003-04-03','yyyy-mm-dd'))
3 Insert into t1 values ('c','cc','cc1',1,to_date('2003-05-03','yyyy-mm-dd'))
4 Insert into t1 values ('d','dd','dd1',1,to_date('2003-06-03','yyyy-mm-dd'))
表T2内容如下:
1 Insert into t2 values ('a',to_date('2003-03-01','yyyy-mm-dd'))
2 Insert into t2 values ('b',to_date('2003-04-01','yyyy-mm-dd'))
3 Insert into t2 values ('c',to_date('2003-05-01','yyyy-mm-dd'))
Q1.Oracle9不支持以下语句?
select sid as tID,sname as tNAME from t1
where tid='b'
如果我要表示选择sid='b'的记录,难道必须用where sid='b'而不能用where tid='b'吗?
如果语句改为
select sid || sname as tCbo from t1
想从中找出sid || sname='bbb'的记录难道也只能用where sid || sname='bbb',而不能用where tCbo='bbb'吗?
如果是更复杂的复合字段呢?
Q2.经典错误ora-03113
执行以下语句
select * from
(
select sid || sname as tCbo,
(case when exists(Select sid From t2
Where sid=t1.sid And to_char(val1,'yyyymm')='200303')
then '是' else '否' end) as f
from t1
)
where f='d'
先报ora-03113 通信通道的文件结束,再报ora-03114 未连接到oracle,将where f='d'改为where tcbo='d',错误消失。
create table T1
(
SID VARCHAR2(10),
SNAME VARCHAR2(20),
VAL1 VARCHAR2(20),
VAL2 NUMBER,
VAL3 DATE
)
create table T2
(
SID VARCHAR2(10),
VAL1 DATE
)
表T1内容如下:
1 Insert into t1 values ('a','aa','aa1',1,to_date('2003-03-03','yyyy-mm-dd'))
2 Insert into t1 values ('b','bb','bb1',1,to_date('2003-04-03','yyyy-mm-dd'))
3 Insert into t1 values ('c','cc','cc1',1,to_date('2003-05-03','yyyy-mm-dd'))
4 Insert into t1 values ('d','dd','dd1',1,to_date('2003-06-03','yyyy-mm-dd'))
表T2内容如下:
1 Insert into t2 values ('a',to_date('2003-03-01','yyyy-mm-dd'))
2 Insert into t2 values ('b',to_date('2003-04-01','yyyy-mm-dd'))
3 Insert into t2 values ('c',to_date('2003-05-01','yyyy-mm-dd'))
Q1.Oracle9不支持以下语句?
select sid as tID,sname as tNAME from t1
where tid='b'
如果我要表示选择sid='b'的记录,难道必须用where sid='b'而不能用where tid='b'吗?
如果语句改为
select sid || sname as tCbo from t1
想从中找出sid || sname='bbb'的记录难道也只能用where sid || sname='bbb',而不能用where tCbo='bbb'吗?
如果是更复杂的复合字段呢?
Q2.经典错误ora-03113
执行以下语句
select * from
(
select sid || sname as tCbo,
(case when exists(Select sid From t2
Where sid=t1.sid And to_char(val1,'yyyymm')='200303')
then '是' else '否' end) as f
from t1
)
where f='d'
先报ora-03113 通信通道的文件结束,再报ora-03114 未连接到oracle,将where f='d'改为where tcbo='d',错误消失。
...全文
相关推荐
Navicat Premium (为什么不能设置0 分的资源)
Navicat 英文安装版, 带sn工具, 没有绿色的免安装版, 要用的下载
Oracle中SQL语句执行效率的查找与解决
Oracle中SQL语句执行效率的查找与解决..
PLSQL隔断时间再执行sql的时候卡死未响应(要等很久才有结果)解决办法
PLSQL隔断时间再执行sql的时候卡死未响应(要等很久才有结果)解决办法
解决SQL SERVER 2005 不能用数据库关系图的问题.
解决SQL SERVER 2005 不能用数据库关系图的问题 解决SQL SERVER 2005 不能用数据库关系图的问题 解决SQL SERVER 2005 不能用数据库关系图的问题
mysql批量执行sql文件的方法
1、待执行的sql文件为1.sql、2.sql、3.sql、4.sql等 2、写一个batch.sql文件: source 1.sql; source 2.sql; source 3.sql; source 4.sql; 3、在mysql下执行source /batch文件所在目录/batch.sql; 以上就是小编为大家带来的mysql批量执行sql文件的方法全部内容了,希望大家多多支持软件开发网~ 您可能感兴趣的文章:Shell脚本中执行sql语句操作mysql的5种方法教你如何在MySQL命令行中使用SQL语句的规则Mysql命令行导入s


