SQLCODE 中的令牌未知

Token unknown in SQLCODE

CREATE DATABASE test.fdb -user ZZZZZ -password *******;

我正在使用上面的命令为我在 windows 中的项目创建一个数据库 7. 我是 Firebird 的新手 SQL,我使用我的系统凭据登录但它显示了一些错误.那么,如何重设密码?

SQL error code = -104
Token unknown. 

我什至不知道SQLCODE = -104的意义。

显示的错误不是由于不知道数据库密码引起的,您在 CREATE DATABASE 语句中有语法错误。错误 Token unknown 意味着语句解析器读取了它没有预料到的内容;错误后通常跟有问题的标记。

如果我在 Firebird 3.0 上使用 ISQL 执行您的语句,我会收到以下完整错误:

SQL> CREATE DATABASE test.fdb -user SYSDBA -password *******;
Statement failed, SQLSTATE = 42000
SQL error code = -104
-Token unknown
-test

这意味着在(或之前)test 您的查询中有错误。

CREATE DATABASE 的正确语法是:

 CREATE {DATABASE | SCHEMA} '<filespec>'
 [USER 'username' [PASSWORD 'password']]
 [PAGE_SIZE [=] size]
 [LENGTH [=] num [PAGE[S]]
 [SET NAMES 'charset'] 
 [DEFAULT CHARACTER SET default_charset
   [COLLATION collation]] -- not supported in ESQL
 [<sec_file> [<sec_file> ...]]
 [DIFFERENCE FILE 'diff_file']; -- not supported in ESQL

 <filespec> ::= [<server_spec>]{filepath | db_alias}

 <server_spec> ::= servername [/{port|service}]: | \servername\

 <sec_file> ::= FILE 'filepath'
 [LENGTH [=] num [PAGE[S]] [STARTING [AT [PAGE]] pagenum]

换句话说,你的声明应该是:

create database 'test.fdb' user SYSDBA password '*******';

所以:

  • 数据库文件路径(或别名)的引号
  • userpassword子句前没有-
  • 密码周围的引号(与显示的语法相反,用户名周围的引号是可选的)

顺便说一句,SQL 错误代码 通常不是很有趣(因为其中一些可以涵盖多个不同的错误)。