如何解决如何纠正“缺少右括号”的问题?
以下是我正在处理的查询示例:
CREATE TABLE book (
book_id NUMBER(6) NOT NULL CHECK(book_id > 0),isbn VARCHAR2(20) NOT NULL UNIQUE,title VARCHAR2(100) NOT NULL,shelf_letter VARCHAR2(2) NOT NULL CHECK(shelf_letter IN('A-Z')),call_number NUMBER(3) NOT NULL CHECK(call_number IN (1-999)),no_of_pages NUMBER(4),no_of_copies NUMBER(3) NOT NULL CHECK(no_of_copies >= 1),date_arrived DATE NOT NULL DEFAULT SYSDATE,publisher_id NUMBER(4) NOT NULL,cat_id NUMBER(2) NOT NULL,CONSTRAINT shelf_call UNIQUE(shelf_letter,call_number)
);
在编译时,它将引发“缺少右括号”错误。我检查了一下,但是所有的括号都占了。有人可以帮我吗?
解决方法
您看到的实际错误是由date_arrived
列(其中NOT NULL
的默认值位于SYSDATE
之前的date_arrived DATE DEFAULT SYSDATE NOT NULL,
引起的。 :
shelf_letter VARCHAR2(2) NOT NULL CHECK(shelf_letter IN('A-Z')),call_number NUMBER(3) NOT NULL CHECK(call_number IN (1-999)),
此外,第二和第三个检查约束虽然在技术上是有效的语法,但看起来很可疑:
shelf_letter
对于REGEXP_LIKE
的检查,大概是要强制执行它只能是A到Z的大写字母。如果是这样,请使用shelf_letter VARCHAR2(2) NOT NULL CHECK(REGEXP_LIKE(shelf_letter,'^[A-Z]$')),
:
call_number
要检查call_number NUMBER(3) NOT NULL CHECK(call_number BETWEEN 1 AND 999),
,请使用范围比较:
CREATE TABLE book (
book_id NUMBER(6) NOT NULL CHECK(book_id > 0),isbn VARCHAR2(20) NOT NULL,title VARCHAR2(100) NOT NULL,shelf_letter VARCHAR2(2) NOT NULL CHECK(REGEXP_LIKE(shelf_letter,call_number NUMBER(6) NOT NULL CHECK(call_number BETWEEN 1 AND 999),no_of_pages NUMBER(4),no_of_copies NUMBER(3) NOT NULL CHECK(no_of_copies >= 1),date_arrived DATE DEFAULT SYSDATE NOT NULL,publisher_id NUMBER(4) NOT NULL,cat_id NUMBER(2) NOT NULL,CONSTRAINT shelf_call UNIQUE(shelf_letter,call_number)
);
将所有内容放在一起,使用以下create table语句:
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: .
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: . /\
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: . / \
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: . / \
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: . / | | \
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: . | |
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: . | |
2020-08-14 08:23:42.577 27533-27533/? E/FirebaseCrashlytics: .
2020-08-14 08:23:42.580 27533-27533/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.ahlibank.ahlipay.subscriber.dev,PID: 27533
java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
at android.app.ActivityThread.installProvider(ActivityThread.java:6396)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5938)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5853)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Caused by: java.lang.IllegalStateException: The Crashlytics build ID is missing. This occurs when Crashlytics tooling is absent from your app's build configuration. Please review Crashlytics onboarding instructions and ensure you have a valid Crashlytics account.
at com.google.firebase.crashlytics.internal.common.CrashlyticsCore.onPreExecute(CrashlyticsCore.java:122)
at com.google.firebase.crashlytics.FirebaseCrashlytics.init(FirebaseCrashlytics.java:165)
at com.google.firebase.crashlytics.CrashlyticsRegistrar.buildCrashlytics(CrashlyticsRegistrar.java:55)
at com.google.firebase.crashlytics.CrashlyticsRegistrar.access$lambda$0(Unknown Source:0)
at com.google.firebase.crashlytics.CrashlyticsRegistrar$$Lambda$1.create(Unknown Source:2)
at com.google.firebase.components.ComponentRuntime.lambda$new$0(com.google.firebase:firebase-components@@16.0.0:69)
at com.google.firebase.components.ComponentRuntime$$Lambda$1.get(Unknown Source:4)
at com.google.firebase.components.Lazy.get(com.google.firebase:firebase-components@@16.0.0:53)
at com.google.firebase.components.ComponentRuntime.initializeEagerComponents(com.google.firebase:firebase-components@@16.0.0:158)
at com.google.firebase.FirebaseApp.initializeAllApis(com.google.firebase:firebase-common@@19.3.0:563)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:304)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:268)
at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@19.3.0:253)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@19.3.0:51)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1917)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1892)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(com.google.firebase:firebase-common@@19.3.0:45)
at android.app.ActivityThread.installProvider(ActivityThread.java:6391)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5938)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5853)
at android.app.ActivityThread.access$1100(ActivityThread.java:199)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1650)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
Demo
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。