SQL语句: SELECT SKDD_M,XN,XQ_ID,STIMEZC,JC,JCZ FROM V_BKS_TIMETABLE_CLASSROOM WHERE SUBSTR(JCZ,2,1)='4' and SUBSTR(JC,0,charindex('-',JC))>=3 and SUBSTR(JC,charindex('-',JC)+1,len(JC))<=5改为Oracle数据语句。
时间: 2023-09-23 21:13:13 浏览: 46
Oracle语句:
SELECT SKDD_M, XN, XQ_ID, STIMEZC, JC, JCZ
FROM V_BKS_TIMETABLE_CLASSROOM
WHERE SUBSTR(JCZ, 2, 1)='4' AND substr(JC,1,instr(JC,'-')-1)>=3 AND substr(JC,instr(JC,'-')+1,length(JC))<=5;
相关问题
SQL语句select SKDD_M as jsbm,STIMEZC zc FROM openquery([JWSERVER],'SELECT * FROM V_BKS_TIMETABLE_CLASSROOM where SUBSTRING(JCZ,2,1)=''4''') jwsj为什么会报错?
这个问题可能是由于以下几个原因之一导致的:
1. 缺少对链接服务器的访问权限;
2. 在链接服务器中没有定义名为 JWSERVER 的服务器;
3. 在链接服务器中定义的服务器名称与你的语句中使用的名称不匹配;
4. 在链接服务器中定义的服务器不支持 Openquery 函数;
5. SQL Server 版本不支持 Openquery 函数。
你可以检查以上几个原因,看是否有问题。同时,你也可以提供更多的错误信息,以便更好地定位问题所在。
报错内容为:链接服务器"JWSERVER"的 OLE DB 访问接口 "OraOLEDB.Oracle" 返回了消息 "ORA-00904: "SUBSTRING": 标识符无效"。 消息 7321,级别 16,状态 2,第 1 行 准备对链接服务器 "JWSERVER" 的 OLE DB 访问接口 "OraOLEDB.Oracle" 执行查询"SELECT * FROM V_BKS_TIMETABLE_CLASSROOM where SUBSTRING(JCZ,2,1)='4'"时出错。
这个报错的原因是 Oracle 数据库不支持 `SUBSTRING` 函数,而 SQL Server 支持。因此,你需要使用 Oracle 支持的字符串函数来代替 `SUBSTRING` 函数。
Oracle 中可以使用 `SUBSTR` 函数来实现字符串截取的功能,语法如下:
```sql
SUBSTR(string, start_position, [ length ])
```
在你的查询语句中,可以将 `SUBSTRING(JCZ,2,1)` 替换为 `SUBSTR(JCZ,2,1)`,即:
```sql
SELECT SKDD_M as jsbm, STIMEZC zc
FROM openquery([JWSERVER],'SELECT * FROM V_BKS_TIMETABLE_CLASSROOM WHERE SUBSTR(JCZ,2,1)=''4''')
```
这样应该就可以避免这个错误了。