1# 关系型数据库错误码 2 3> **说明:** 4> 5> 以下仅介绍本模块特有错误码,通用错误码请参考[通用错误码说明文档](../errorcode-universal.md)。 6 7## 14800000 内部错误 8 9**错误信息** 10 11Inner error. 12 13**错误描述** 14 15内部错误。 16 17**可能原因** 18 19优先查看错误日志,通过日志可以详细了解错误原因,主要有以下几种: 201. sql执行异常。 212. 内部状态异常。 223. 错误地使用接口。 234. 系统错误,如空指针、内存不足、数据服务异常重启、I/O错误、IPC异常、JS引擎异常等。 24 25**处理步骤** 26 271. 开发者排查sql语句和谓词是否正确使用。 282. 开发者排查是否存在对象关闭后再使用。 293. 开发者排查是否按接口文档正确使用接口。 304. 尝试重试,如果依然无法解决,可以提示用户重启应用、升级应用或升级设备版本。 31 32## 14800010 数据库路径不合法 33 34**错误信息** 35 36Invalid database path. 37 38**错误描述** 39 40数据库路径不合法。 41 42**可能原因** 43 44无效的数据库路径。 45 46**处理步骤** 47 48检查传入数据库路径。 49 50## 14800011 数据库文件损坏 51 52**错误信息** 53 54Database corrupted. 55 56**错误描述** 57 58该错误码表示在调用数据库增、删、查、数据同步等接口时,数据库已损坏。 59 60**可能原因** 61 62调用数据库增、删、查、数据同步等接口操作数据库时,数据库文件已损坏。 63 64**处理步骤** 65 66如果可以接受数据库数据丢失,则可尝试删除数据库后重新创建。否则,需要备份数据库以便恢复。具体操作可参考[数据库备份与恢复](../../database/data-backup-and-restore.md)。 67 68## 14800012 结果集为空或指定位置不合法 69 70**错误信息** 71 72Row out of bounds. 73 74**错误描述** 75 76结果集为空或指定位置不合法。 77 78**可能原因** 79 80结果集为空或结果集指定行号超出位置范围[0, m - 1],m = resultsetV9.rowCount。 81 82**处理步骤** 83 84检查当前操作得到的结果集是否为空或指定的位置是否合法。 85 86## 14800013 列值为空或列类型与当前调用接口不兼容 87 88**错误信息** 89 90Column out of bounds. 91 92**错误描述** 93 94列值为空或列类型与当前调用接口不兼容。 95 96**可能原因** 97 981. 结果集为空。 992. 结果集当前行号超出范围[0, m - 1],m = resultsetV9.rowCount。 1003. 当前列号超出范围[0, n - 1],n = resultsetV9.columnCount。 1014. 当前列数据类型接口不支持。 102 103**处理步骤** 104 1051. 检查结果集是否为空。 1062. 检查结果集当前行号、列号是否超出范围。 1073. 检查当前列数据类型是否支持。 108 109## 14800014 数据库或结果集关闭 110 111**错误信息** 112 113Already closed. 114 115**错误描述** 116 117数据库或结果集关闭。 118 119**可能原因** 120 121RdbStore或者ResultSet等带有close接口的对象,已调用过close或者没有打开成功。 122 123**处理步骤** 124 125重新打开RdbStore或者重新查询获取得到ResultSet。 126 127## 14800015 数据库没有响应 128 129**错误信息** 130 131The database does not respond. 132 133**错误描述** 134 135数据库没有响应。 136 137**可能原因** 138 139有读、写、attach、detach等操作正在执行,无法在指定的时间(默认2s)内执行当前操作。 140 141**处理步骤** 142 1431. 重新尝试 1442. 如果是[attach](./js-apis-data-relationalStore.md#attach12)或[detach](./js-apis-data-relationalStore.md#detach12)接口,增加waitTime值来增加等待时长。 145 146## 14800016 数据库别名已被使用 147 148**错误信息** 149 150The database alias already exists. 151 152**错误描述** 153 154附加后的数据库别名已被使用。 155 156**可能原因** 157 158附加后的数据库的别名已被使用。 159 160**处理步骤** 161 162不进行附加数据库操作或者修改附加后数据库的别名。 163 164## 14800017 关键配置已被更改 165 166**错误信息** 167 168Config changed. 169 170**错误描述** 171 172数据库关键配置已被更改。 173 174**可能原因** 175 176数据库的area(区域), securityLevel(安全级别)等关键配置发生变化。 177 178**处理步骤** 179 180保持原配置不变或者用原配置导出数据,删除旧库,用新配置创建新库,数据存入新库。 181 182## 14800018 查询结果没有数据符合条件 183 184**错误信息** 185 186No data meets the condition. 187 188**错误描述** 189 190SQL语句有误,未查询到符合条件的数据。 191 192**可能原因** 193 194没有编写查询正确结果集的SQL语句。 195 196**处理步骤** 197 198编写正确的查询语句或者添加数据库数据之后再做查询。 199 200## 14800019 SQL必须是查询语句 201 202**错误信息** 203 204The SQL must be a query statement. 205 206**错误描述** 207 208SQL必须是查询语句。 209 210**可能原因** 211 212SQL语句不符合规定,导致查询失败。 213 214**处理步骤** 215 216SQL语句不符合规定导致执行失败时,编写满足规约的SQL语句。 217 218## 14800020 密钥损坏或丢失 219 220**错误信息** 221 222The secret key is corrupted or lost. 223 224**错误描述** 225 226获取密钥失败。 227 228**可能原因** 229 230根密钥丢失、无权限读取密钥文件、密钥文件损坏等。 231 232**处理步骤** 233 2341.检查密钥文件权限、内容是否正常。 2352.重建或restore恢复数据库。 236 237## 14800021 SQLite:通用错误 238 239**错误信息** 240 241SQLite: Generic error. 242 243**错误描述** 244 245SQLite:通用错误。 246 247**可能原因** 248 249执行sql语句过程中出现错误,如: 2501. 插入或更新未创建的表。 2512. 插入或更新未曾有的列。 2523. 调用未定义的函数等,参见SQLITE_ERROR的相关错误场景。 253 254**处理步骤** 255 256开发者分析错误的SQL语句,找出错误点。 257 258## 14800022 SQLite:异步回调请求被中止 259 260**错误信息** 261 262SQLite: Callback routine requested an abort. 263 264**错误描述** 265 266SQLite:异步回调请求被中止。 267 268**可能原因** 269 2701. 通常发生在使用SQLite的自定义函数机制时,回调被中止执行。 2712. 参见SQLITE_ABORT的相关错误场景。 272 273**处理步骤** 274 275检查SQLite的钩子函数(callback)的实现,确保其正确性。 276 277## 14800023 SQLite:访问权限被拒绝 278 279**错误信息** 280 281SQLite: Access permission denied. 282 283**错误描述** 284 285SQLite访问权限被拒绝。 286 287**可能原因** 288 2891. 操作系统级别的权限问题,意味着SQLite试图访问或修改一个文件,但是没有足够的权限去执行这个操作。 2902. 参见SQLITE_PERM的相关错误场景。 291 292**处理步骤** 293 2941. 确认文件没有只读属性,如果有,去掉只读属性。 2952. 检查文件和文件夹的权限,确保当前用户有足够的权限来读写文件。 2963. 检查文件系统是否为只读,如果是,改为可写状态。 2974. 确认没有其他进程锁定数据库文件,如果有,关闭占用文件的进程。 2985. 在处理权限问题时,确保有足够的权限去更改相关的文件或文件夹权限。 299 300## 14800024 SQLite:数据库文件已锁定 301 302**错误信息** 303 304SQLite: The database file is locked. 305 306**错误描述** 307 308SQLite数据库文件已锁定。 309 310**可能原因** 311 3121. 同一应用两个进程,例如UIability和datashareability同时打开了同一个数据库,进行增删改操作,或者不同应用的同一个group组内的进程通过group组打开同一个数据库,进行增删改操作。 3132. 参见SQLITE_BUSY的相关错误场景。 314 315**处理步骤** 316 3171. 避免进程并发操作数据库。 3182. 等待一段时间重试。 319 320## 14800025 SQLite:数据库中的表被锁定 321 322**错误信息** 323 324SQLite: A table in the database is locked. 325 326**错误描述** 327 328SQLite:数据库中的表被锁定。 329 330**可能原因** 331 3321. 在尝试写入SQLite数据库时,但数据库文件已被另一个进程锁定。这可能是因为数据库处于事务中,或者有其他的锁机制在阻止写入。 3332. 参见SQLITE_LOCKED的相关错误场景。 334 335**处理步骤** 336 3371. 确保没有其他进程或线程正在对数据库文件进行写操作。 3382. 如果使用了事务,请确保在开始事务后及提交事务前不要进行任何写操作。 3393. 检查是否有其他锁机制(如文件锁)可能阻止了写入。 3404. 如果数据库连接对象没有正确关闭,确保在完成数据库操作后关闭连接。 3415. 如果在多线程环境中,确保对数据库操作加锁,防止竞争条件。 342 343## 14800026 SQLite:数据库内存不足 344 345**错误信息** 346 347SQLite: The database is out of memory. 348 349**错误描述** 350 351SQLite:数据库内存不足。 352 353**可能原因** 354 355数据库内存不足,可能是由于数据量过大或内存分配不足导致的。 356 357**处理步骤** 358 359减小数据量或增加内存分配。 360 361## 14800027 SQLite:尝试写入只读数据库 362 363**错误信息** 364 365SQLite: Attempt to write a readonly database. 366 367**错误描述** 368 369SQLite:尝试写入只读数据库。 370 371**可能原因** 372 3731. 尝试写入一个以只读模式打开的SQLite数据库文件时。这可能是因为文件权限问题,文件处于只读文件系统中或者数据库被标记为只读。 3742. 参见SQLITE_READONLY的相关错误场景。 375 376**处理步骤** 377 3781. 确保有足够的权限去写入数据库文件。 3792. 如果文件系统是只读的,需要将其改为读写模式。 3803. 确认在打开数据库时没有使用只读模式参数。 381 382## 14800028 SQLite:发生了某种磁盘I/O错误 383 384**错误信息** 385 386SQLite: Some kind of disk I/O error occurred. 387 388**错误描述** 389 390SQLite发生了某种磁盘I/O错误。 391 392**可能原因** 393 394可能是由于多种原因造成的,包括但不限于: 3951. 文件不存在。 3962. 文件是只读的。 3973. 磁盘空间不足。 3984. 文件损坏。 3995. 参见SQLITE_IOERR的相关错误场景。 400 401**处理步骤** 402 4031. 检查文件路径是否正确,文件是否存在。 4042. 确保文件没有设置为只读。 4053. 检查磁盘空间是否足够,并清理不必要的文件释放空间。 4064. 检查文件的权限,确保应用程序有足够的权限去读写文件。 407 408## 14800029 SQLite:数据库已满 409 410**错误信息** 411 412SQLite: The database is full. 413 414**错误描述** 415 416SQLite数据库已满。 417 418**可能原因** 419 420数据库已满,可能是由于数据量过大或磁盘空间不足导致的。 421 422**处理步骤** 423 424减小数据量或增加磁盘空间。 425 426## 14800030 SQLite:无法打开数据库文件 427 428**错误信息** 429 430SQLite: Unable to open the database file. 431 432**错误描述** 433 434SQLite:无法打开数据库文件。 435 436**可能原因** 437 4381. 文件不存在,并且创建新数据库失败。 4392. 文件存在,但是数据库文件损坏。 4403. 文件权限问题,SQLite无法读写文件。 4414. 磁盘空间不足。 4425. 参见SQLITE_CANTOPEN的相关错误场景。 443 444**处理步骤** 445 4461. 确认数据库文件路径是否正确,检查文件权限,确保应用程序有足够的权限去读写文件。 4472. 确认磁盘空间足够。 448 449## 14800031 SQLite:TEXT或BLOB超出大小限制 450 451**错误信息** 452 453SQLite: TEXT or BLOB exceeds size limit. 454 455**错误描述** 456 457SQLite:TEXT或BLOB超出大小限制。 458 459**可能原因** 460 4611. 查询的结果集超过了SQLite所能处理的大小限制。 4622. 参见SQLITE_TOOBIG的相关错误场景。 463 464**处理步骤** 465 466将大查询分解为多个小查询,每次处理一部分数据。 467 468## 14800032 SQLite:由于违反约束而中止 469 470**错误信息** 471 472SQLite: Abort due to constraint violation. 473 474**错误描述** 475 476SQLite:由于违反约束而中止。 477 478**可能原因** 479 4801. 尝试写入SQLite数据库时违反了数据库的完整性约束条件。 4812. 参见SQLITE_CONSTRAINT的相关错误场景。 482 483**处理步骤** 484 485检查试图插入或更新的数据是否违反了上述约束。 486 487## 14800033 SQLite:数据类型不匹配 488 489**错误信息** 490 491SQLite: Data type mismatch. 492 493**错误描述** 494 495SQLite:数据类型不匹配。 496 497**可能原因** 498 4991. 执行一个SQL语句时,其中涉及的数据类型与数据库中存储的数据类型不匹配。 5002. 参见SQLITE_MISMATCH的相关错误场景。 501 502**处理步骤** 503 504检查SQL语句中涉及的列的数据类型,确保插入、更新或查询的数据类型与列的数据类型相匹配。 505 506## 14800034 SQLite:库使用不正确 507 508**错误信息** 509 510SQLite: Library used incorrectly. 511 512**错误描述** 513 514SQLite:库使用不正确。 515 516**可能原因** 517 5181. 表示数据库操作或者使用上下文不正确。这个错误通常发生在以下几种情况: 519 - 数据库还没有完成操作就进行下一个操作。 520 - 在一个数据库连接已经关闭后,继续对该连接进行操作。 521 - 使用了已经释放或无效的数据库对象。 5222. 参见SQLITE_MISUSE的相关错误场景。 523 524**处理步骤** 525 5261. 确保数据库操作之间有适当的同步,比如使用锁或其他同步机制。 5272. 确保数据库连接在使用前是打开的,在结束操作后是关闭的。 5283. 确保所有数据库对象在使用完毕后都已正确释放。 529 530## 14800047 WAL文件大小超过默认上限 531 532**错误信息** 533 534The WAL file size exceeds the default limit. 535 536**错误描述** 537 538WAL文件大小超过默认上限(512MB)。 539 540**可能原因** 541 542在开启读事务或者结果集未关闭的情况下,不断执行增删改操作,导致WAL文件大小超过默认上限。 543 544**处理步骤** 545 546检查结果集或者事务是否未关闭。 547 548关闭所有的结果集或者事务。 549 550## 14800050 获取订阅服务失败 551 552**错误信息** 553 554Failed to obtain the subscription service. 555 556**错误描述** 557 558获取订阅服务失败。 559 560**可能原因** 561 562当前平台不支持订阅服务。 563 564**处理步骤** 565 566需要在当前平台部署订阅服务。 567 568## 14801001 上下文环境非Stage模型 569 570**错误信息** 571 572The operation is supported in the stage model only. 573 574**错误描述** 575 576该操作仅支持Stage模型。 577 578**可能原因** 579 580当前上下文环境非Stage模型。 581 582**处理步骤** 583 584切换当前上下文环境,使用Stage模型。 585 586## 14801002 storeConfig中传入的dataGroupId参数非法 587 588**错误信息** 589 590Invalid data ground ID. 591 592**错误描述** 593 594使用非法dataGroupId参数。 595 596**可能原因** 597 598使用的dataGroupId不是从应用市场正常申请的。 599 600**处理步骤** 601 602从应用市场申请dataGroupId,并正确传入该参数。 603 604## 14800051 分布式表类型不匹配 605 606**错误信息** 607 608The type of the distributed table does not match. 609 610**错误描述** 611 612对同一数据库表设置的分布式表类型前后不一致。 613 614**可能原因** 615 616对同一数据库表设置的分布式表类型前后不一致,分布式表类型可见[DistributedType](js-apis-data-relationalStore.md#distributedtype10)。 617 618**处理步骤** 619 620对同一数据库表设置的分布式表类型保持一致,属于端端同步的分布式表不可再设置为用于端云的同步表。