- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经看到了有关此错误的几个问题,但每个解决方案都不同,因为它是所谓的“语法错误”。我在生产中使用 Oracle,在开发中使用 Derby(非常烦人,但我能做什么)。
当我运行在 Oracle 上创建的某个 SQL 命令时,它似乎工作正常并且执行其预期的操作(正在使用 Oracle SQL Developer)。但是当我想在 Derby 中运行相同的命令时,我遇到了这个错误。
无论我做什么,我都会遇到这个错误。
WARN | SQL Error: 20000, SQLState: 42X01
ERROR | Syntax error: Encountered "WHERE" at line 94, column 6.
我一生都无法弄清楚出了什么问题。这是我的 SQL 命令。有点长而且复杂:
CREATE VIEW BDPBCDBView AS SELECT
BDP_INSTITUTION_NAME,
BIC,
BDP_COUNTRY_NAME,
BDP_ISO_COUNTRY_CODE,
BDP_CITY,
BDP_NETWORK_CONNECTIVITY,
BDP_SERVICE_CODES,
BDP_ISTARGET,
BCDB_NAME,
BCDB_LAENDERKENNZEICHEN,
BCDB_AKTIVMERKMALBANK,
BCDB_AKTIVMERKMALLAND,
BCDB_AKTIVMERKMALBANKLAND,
BCDB_SWIFTKENNZEICHEN,
COUNTRYCODE,
ISBDP,
ISBCDB,
BCDB_ORT,
s1.BICS_RMA
FROM
(SELECT
bdp.bic,
bdp.institution_name AS bdp_institution_name,
bdp.country_name AS bdp_country_name,
bdp.iso_country_code AS bdp_iso_country_code,
bdp.city AS bdp_city,
bdp.network_connectivity AS bdp_network_connectivity,
bdp.service_codes as bdp_service_codes,
bdp.isTarget AS bdp_isTarget,
bcdb.name as bcdb_name,
bcdb.laenderKennzeichen as bcdb_laenderKennzeichen,
bcdb.aktivMerkmalBank AS bcdb_aktivMerkmalBank,
bcdb.aktivMerkmalLand AS bcdb_aktivMerkmalLand,
bcdb.aktivMerkmalBankLand AS bcdb_aktivMerkmalBankLand,
bcdb.swiftKennzeichen AS bcdb_swiftKennzeichen,
CASE
WHEN bcdb.laenderKennzeichen IS NOT NULL THEN bcdb.laenderKennzeichen
ELSE bdp.iso_country_code
END AS countryCode,
CASE
WHEN bdp.bic IS NOT NULL THEN 1
ELSE 0
END AS isbdp,
CASE
WHEN bcdb.bic IS NOT NULL THEN 1
ELSE 0
END AS isbcdb,
bcdb.ort AS bcdb_ort
FROM BDP bdp LEFT JOIN BCDB bcdb ON bdp.bic = bcdb.bic WHERE bdp.bic IS NOT NULL
UNION ALL SELECT
bcdb.bic,
bdp.institution_name AS bdp_institution_name,
bdp.country_name AS bdp_country_name,
bdp.iso_country_code AS bdp_iso_country_code,
bdp.city AS bdp_city,
bdp.network_connectivity AS bdp_network_connectivity,
bdp.service_codes as bdp_service_codes,
bdp.isTarget AS bdp_isTarget,
bcdb.name as bcdb_name,
bcdb.laenderKennzeichen as bcdb_laenderKennzeichen,
bcdb.aktivMerkmalBank AS bcdb_aktivMerkmalBank,
bcdb.aktivMerkmalLand AS bcdb_aktivMerkmalLand,
bcdb.aktivMerkmalBankLand AS bcdb_aktivMerkmalBankLand,
bcdb.swiftKennzeichen AS bcdb_swiftKennzeichen,
CASE
WHEN bcdb.laenderKennzeichen IS NOT NULL THEN bcdb.laenderKennzeichen
ELSE bdp.iso_country_code
END AS countryCode,
CASE
WHEN bdp.bic IS NOT NULL THEN 1
ELSE 0
END AS isbdp,
CASE
WHEN bcdb.bic IS NOT NULL THEN 1
ELSE 0
END AS isbcdb,
bcdb.ort AS bcdb_ort
FROM BDP bdp RIGHT JOIN BCDB bcdb ON bdp.bic = bcdb.bic WHERE bdp.bic IS NULL)
t1 LEFT JOIN ( SELECT * FROM
(
SELECT s1.BIC_CRSPNDT AS BICS_RMA FROM
(SELECT
rma.crspdt AS BIC_CRSPNDT,
rma.issr AS BIC_ISSR
From RMA
WHERE ((RMA.tp= 'Issued' OR RMA.tp = 'Received') AND RMA.RMASTS='Enabled' AND RMA.SVCNM='swift.fin') )s1
UNION
SELECT s1.BIC_ISSR AS BIC FROM (SELECT
rma.crspdt AS BIC_CRSPNDT,
rma.issr AS BIC_ISSR
FROM RMA
WHERE ((RMA.tp= 'Issued' OR RMA.tp = 'Received') AND RMA.RMASTS='Enabled' AND RMA.SVCNM='swift.fin') )s1 )
WHERE BICS_RMA IS NOT NULL
ORDER BY BICS_RMA) s1
ON (s1.BICS_RMA = substr(t1.BIC, 1,8))
错误发生在倒数第三行。
我在 Java 中读到的代码是:
@PersistenceContext
EntityManager em;
@PostConstruct
public void createViewIfNeeded() {
if (FidaProfile.isActive(FidaProfile.DEVELOPMENT)) {
em.createNativeQuery("DROP TABLE BDPBCDBView").executeUpdate();
String command_1 = loadDevelopmentViewScript("DEV-DB/init_dev_view.sql");//BDPBCDView sql script, this is made from 3 tables namely BCDB, BDP and RMA
em.createNativeQuery(command_1).executeUpdate();
}
}
public void setEm(EntityManager em) {
this.em = em;
}
private String loadDevelopmentViewScript(String addressOfSQLScript) {
try {
InputStream stream = BDPBCDPViewGenerator.class.getClassLoader().getResourceAsStream(addressOfSQLScript);
ByteArrayOutputStream result = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
int length;
while ((length = stream.read(buffer)) != -1) {
result.write(buffer, 0, length);
}
return result.toString("UTF-8");
} catch (IOException e) {
throw new FidaErrorCodeException(FidaErrorCode.UNEXPECTED_EXCEPTION,
"Could NOT load Development-View-Script", e);
}
}
最佳答案
顺便说一句,良好的格式对于跟踪复杂查询中发生的情况至关重要!
由于我之前的答案不正确,如果您要更改 s1 子查询以便进行逆透视而不是使用联合,会怎么样?像这样的东西:
SELECT DISTINCT CASE WHEN dummy.id = 1 THEN r.bic_crspndt
WHEN dummy.id = 2 THEN r.bic_issr
END AS bics_rma
FROM (SELECT rma.crspdt AS bic_crspndt,
rma.issr AS bic_issr
FROM rma
WHERE (rma.tp = 'Issued' OR rma.tp = 'Received')
AND rma.rmasts = 'Enabled'
AND rma.svcnm = 'swift.fin') r
INNER JOIN (SELECT 1 ID FROM dual UNION ALL
SELECT 2 ID FROM dual) dummy ON (dummy.id = 1 AND r.crspdt IS NOT NULL)
OR (dummy.id = 2 AND r.issr IS NOT NULL);
如果您这样做,Derby 数据库也许能够应付?
注意我通过条件交叉连接使用手动 UNPIVOT,而不是 Oracle 11g UNPIVOT 函数,因为我不知道有关 Derby 的任何信息,而且那里可能不支持 UNPIVOT。我无法理解为什么您被迫在实时环境和开发环境之间使用不同的数据库平台;听起来很疯狂,而且可能相当危险!我想您已经尝试过标记这一点!
关于java - Derby 中的sql错误 - ERROR 42X01 : Syntax error: Encountered “WHERE” ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42811157/
我构建了一个自定义的 EST(指数平滑)模型。首先,我定义了一个函数,其中包含传递给第二个函数的参数定义,该函数执行计算并返回预测错误。然后将这些平方并求和。然后,最小化器应优化参数,以便最小化平方误
无法解析模板“ASClass”错误信息: This template did not produce a Java class or an interface package com.example.
我正在尝试将我的井字游戏结果输出到数据库。但是,每当两个客户端之间的匹配完成时,我都会遇到此错误。这是我的服务器端代码和错误消息的摘录: 数据库类: import java.sql.*;
我想创建一个过程来检查记录是否存在,然后更新,否则插入。但是,有一个问题我试图解决,但无法解决。请帮助。 CREATE TABLE JOB_RUN ( DATE_KEY VARCHAR2(8), JO
这是我第一次在 derby 查询中创建存储过程。我正在尝试创建一个程序。当我尝试运行查询时,出现错误 Encountered "BEGIN" 代码 CREATE PROCEDURE show_name
当我运行 pyOpenTld 时,我得到 RuntimeWarning: overflow encountered in int_scalars从这个模块。为什么会这样? Warning (from
昨晚将一个disucz论坛进行转移后,发现打开的页面上回多一个PHP has encountered a Stack overflow 这个提示错误,进过翻译为“PHP遇到堆栈溢出”。我就感觉奇怪了
我是机器学习和 numpy 的新手,我一直在尝试在来自 sklearn 的波士顿住房数据集上运行梯度下降我的实现适用于小型随机数据集,但在波士顿数据集中它会产生这些警告 :12: RuntimeWar
我正在尝试在 Windows Server 2008 上使用 TortoiseSVN checkout SVN 存储库。我在 checkout 时收到错误消息“遇到不正确的参数”,仅此而已。知道这里可
我正在尝试使用 Parsec 在 Haskell 中编写解析器。目前我有一个可以解析的程序 test x [1,2,3] end 执行此操作的代码如下 testParser = do { rese
这个问题已经有答案了: Android 8: Cleartext HTTP traffic not permitted (37 个回答) 已关闭 3 年前。 我正在 Android Studio 上构
我在 angular.js 中定义了一个空模块: angular.module('todoList', [], function () { }) 然后我想在我的 conf.js 中测试它,我加载这些j
当使用OpenJPA在内存数据库org.apache.derby中执行select语句时,遇到以下错误: javax.ejb.EJBException: The bean encountered a
我需要开始处理外来字符,在这样做的过程中,我想我真的搞砸了文件的编码。 我得到的错误是: Lexical error at line 1, column 8. Encountered: "" (0)
我试图在 Python 中创建一个 sigmoid 函数,但是,我收到以下错误: RuntimeWarning: overflow encountered in exp 这是我的代码: def sig
我有三个耦合的常微分方程,我在 python 中使用 RK4 方法在给定的初始条件下求解它们。当我运行它们时,我收到以下错误: RuntimeWarning: overflow encountered
我是 Hadoop 和 Pig 的初学者。我检查了在cloudera虚拟镜像中证明的例子,并对其进行了修改以计算前5个常用词: Lines = LOAD '/user/hue/pig/examples
我是 Python 的新手,这是我编写脚本的第一件事,我只是想知道我能做些什么来删除这个警告: Warning (from warnings module): File "C:\Users\Lur
我正在编写一个 UNIX paste 克隆。然而,我不断收到“遇到断点”消息,但 VS 不会告诉我发生在哪一行。 #include #include #define INITALLOC 16
无论我是在 Visual Studio 2017 中同步还是只是使用 Git Bash 进行推送,我都会不断收到此错误。看起来 PUSH/PULL 命令有效,但我仍然看到此错误并希望它消失。 我的 W
我是一名优秀的程序员,十分优秀!