问题标签 [sqlexception]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sql - 判断PostgreSQL SQL异常是用户错误还是系统错误
我正在实现一个由 PostgreSQL 支持的 RESTful Web 服务。当 PostgreSQL 抛出 SQLException 时,如果错误类似于输入字符串的值太长,则 HTTP 响应状态应为 400 Bad Request,如果磁盘崩溃,则应为 500 Internal Server Error。
对于人类来说,从异常中的消息中可以明显看出这一点。但是有什么方法(现在他从 Jeopardy 回来后不租用 Watson)我的程序可以查看 SQLException 并猜测问题是用户错误还是系统错误?
我对SQL不太了解。我注意到 SQLState 是一个五个字符的字符串,前两个字符是“类代码”。
到目前为止,这是我的猜测:
Class 00:成功完成,没有抛出异常。
01 级:警告。在这种情况下会抛出 SQLException 吗?如果是这样,结果应该是 400 Bad Request。
Class 02:No Data(没有返回结果时的正常结果?)
03 类:SQL 语句尚未完成:可能是编程错误,而不是最终用户错误,因此是 500 Internal Server Error
Class 08: Connection Exception: 显然是 500 Internal Server Error
课程 09 - 21:可能 500 内部服务器错误
第 22 类:数据异常。我正在处理的具体示例引发“22001 错误:类型字符变化(250)的值太长”。这应该作为 400 Bad Request 返回。(在执行 SQL 语句之前对“名称”字段进行长度验证,但实际存储的值是完整路径名,即附加到其他内容的名称。)对于其他类 22 错误,我可能会返回 400 Bad Request ,尽管其中许多可能源于编程错误。
其他类看起来像 500 Internal Server Error 通常是更正确的状态。
java - 如何捕获数据的 SQLException?(例如,数据不存在)
长时间搜索这个问题的解决方案,但仍然无法得到答案,我试图在我用 JAVA 制作的应用程序中创建一个搜索框。
我想从数据库中捕获异常并告诉用户该列不存在或重复数据,我可以知道我该怎么做吗?
java - 如何在批处理中获取包含异常的精确sql查询
我想执行以下操作:
(从 PROCESSING DB 的提取行中转移到 PRESENTATION DB 的行)
如何识别导致异常的行能够在没有此特定行的情况下重新执行批处理?(通过更新行的字段 hasError)。
目前我没有批量保存对象,因此如果它导致错误,我可以标记该行并跳过该行并继续处理(即保存/传输和删除)另一行。
谢谢!
更新:
好的,我使用以下代码来跟踪行(如果任何行导致错误):
并添加了一行:
所以我可以看到有或没有任何错误的更改,但似乎 BatchUpdateException 不起作用?
c# - 嵌套 linq 查询中的“无效列名 [ColumnName]”
最后更新
经过大量测试后,我意识到如果我在 SQL 2000 和 SQL 2005 上对同一个数据集(在本例中为 Northwind)表运行相同的查询,我会得到两个不同的结果。在 SQL 2000 上,我得到了问题中的错误。在 SQL 2005 上,它成功了。
所以我得出结论,linqpad 生成的查询在 sql 2000 上不起作用。要重现这一点,请运行:
在 sql 2000 中的 Northwind DB 上。 sql 翻译是:
原始问题
我有以下查询:
结果是:
我已经确定它与对 Timestamp 的最后一个查询有关,因为它有效:
查询已被简化。目的是按一组变量进行分组,然后显示该分组最后一次在 db 中发生的时间。
我正在使用 Linqpad 4 生成这些结果,因此 Timestamp 给了我一个字符串,而 FirstOrDefault 给了我不理想的整个对象。
更新
在进一步的测试中,我注意到 SQLException 的数量和类型与 groupby 子句中创建的类有关。所以,
结果是
c# - Max(x=>x.Time) vs OrderByDescending(x=>x.Time).First().Time
我提出了一个相关问题:
嵌套 linq 查询中的“列名无效 [ColumnName]”
我正在尝试按照此处的要求获取组的第一行:
Linq - 每个组的最高值
但是,我使用 Max 的方法与接受的答案不同。我是这样做的:
这会导致错误SqlException: Invalid column name 'ID'
现在当我使用 Max 函数时:
它返回我想要的时间列表。
我的理解是它们是不同但等效的调用。为什么我在第一次调用时收到 sql 错误?
更新
为第一个查询生成的 sql 查询如下所示:
我设法减少它但保持相同的错误:
Update2
一些答案说这些查询在逻辑上是不同的,但是,如果你在北风表上做这样的事情,它会产生相同的结果:
因此,我不能接受 3 个答案中的任何一个,即查询不同,或者 Max 给出的是 Sum 而不是列表的最大值,或者您必须在继续之前将 IQueriable 转换为列表。
android - 在 Android 中查询时出现 SQLiteException
我在此行中收到此异常“绑定或列索引超出范围”:
我想检查给定的 id 是否存在于数据库中,但查询总是抛出这个异常,我不知道出了什么问题。我试过这个,但它是一样的例外:
这是我编写的方法。如果这里有什么问题,请告诉我:
sql - ibatis参数初始化问题
我的应用程序在将参数映射初始化为 sql 语句时出现异常。错误是:
这些定义是完全持久的(我的意思是 java 端和 xml 端)。
有任何想法吗?
java - 这个 BatchUpdateException 是什么意思?
我从 stmt.executeBatch() 语句中得到这个 BatchUpdateException :
互联网上没有关于此异常消息的任何信息。这是什么意思?除了存储过程失败之外,回溯不包含任何有用的信息。
wpf - 如何在 LINQ to SQL 中捕获 SqlException
在我的 WPF 应用程序中,我使用的是 LINQ to SQL,所以当我调用 时SubmitChanges()
,它会引发异常,但我无法捕获它。
以下是相关代码:
这是上面抛出的异常:
如何SqlException
在 WPF 应用程序中捕获?
我看到这SubmitChanges()
不会引发任何异常。但是引发异常指向的代码是调用SubmitChanges()
.
编辑:
完整的例外是:
java - Java PreparedStatement 和 Alter Table 语法错误
我必须使用 PreparedStatement 在表的字段上创建索引。我必须执行的查询如下:
因此,我创建了一个PreparedStatement
具有相同查询文本的实例并对其执行executeUpdate()
方法。但是在执行时我得到一个 SQL 语法错误。这是PreparedStatement
实例的创建:
这个 SQLException 我得到:
我该如何解决这个问题?
在此先感谢,
安东尼奥