由於字符集問題導致 Package Body created with compilation errors.
將要在生產庫上進行包的預釋出,時遇到如下情況:Warning: Package Body created with compilation errors.整個過程如下:
首先檢查物件的有效個數和無效的個數。
IM@im1>select object_type,status,count(*) from user_objects group by object_type,status;
OBJECT_TYPE STATUS COUNT(*)
------------------ ------- ----------
TYPE VALID 11
VIEW INVALID 3
INDEX VALID 399
TABLE VALID 234
PACKAGE VALID 49
SYNONYM VALID 10
FUNCTION VALID 1
SEQUENCE VALID 173
PROCEDURE VALID 22
PACKAGE BODY VALID 49
DATABASE LINK VALID 6
INDEX PARTITION VALID 79
TABLE PARTITION VALID 79
13 rows selected.
釋出是遇到如下錯誤:
IM@im1>@/tmp/IM_SMS_20110727.pkg
Package created.
Warning: Package Body created with compilation errors.
show error 檢查,無結果顯示。考慮不是語法的問題。
IM@im1>show error
No errors.
檢查物件的有效個數:
IM@im1>select object_type,status,count(*) from user_objects group by object_type,status;
OBJECT_TYPE STATUS COUNT(*)
------------------ ------- ----------
TYPE VALID 11
VIEW INVALID 3
INDEX VALID 399
TABLE VALID 234
PACKAGE VALID 49
SYNONYM VALID 10
FUNCTION VALID 1
SEQUENCE VALID 173
PROCEDURE VALID 22
PACKAGE BODY VALID 48
PACKAGE BODY INVALID 1 --多一個無效物件
DATABASE LINK VALID 6
INDEX PARTITION VALID 79
TABLE PARTITION VALID 79
14 rows selected.
測試庫的字符集為NLS_CHARACTERSET= AL32UTF8,而編輯的指令碼的windows平臺是ANSI,導致對中文的不相容。
解決辦法是測試環境的NLS_LANG為"AMERICAN_AMERICA.US7ASCII",重新執行包的釋出。
IM@im1>select * from nls_database_parameters;
PARAMETER VALUE
------------- ------------
NLS_NCHAR_CHARACTERSET AL16UTF16
NLS_LANGUAGE AMERICAN
NLS_TERRITORY AMERICA
NLS_CURRENCY $
NLS_ISO_CURRENCY AMERICA
NLS_NUMERIC_CHARACTERS .,
NLS_CHARACTERSET AL32UTF8
NLS_CALENDAR GREGORIAN
NLS_DATE_FORMAT DD-MON-RR
NLS_DATE_LANGUAGE AMERICAN
NLS_SORT BINARY
NLS_TIME_FORMAT HH.MI.SSXFF AM
NLS_TIMESTAMP_FORMAT DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY $
NLS_COMP BINARY
NLS_LENGTH_SEMANTICS BYTE
NLS_NCHAR_CONV_EXCP FALSE
NLS_RDBMS_VERSION 9.2.0.8.0
20 rows selected.
IM@im1>exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
oracle@c9e016r3ectk1xl67j8p:aliuid /tmp>export|grep LANG
declare -x LANG="en_US.UTF-8"
declare -x NLS_LANG="AMERICAN_AMERICA.AL32UTF8"
oracle@c9e016r3ectk1xl67j8p:/tmp>
oracle@c9e016r3ectk1xl67j8p:/tmp>
oracle@c9e016r3ectk1xl67j8p: /tmp>export NLS_LANG="AMERICAN_AMERICA.US7ASCII"
oracle@c9e016r3ectk1xl67j8p: /tmp>
oracle@c9e016r3ectk1xl67j8p: /tmp>
oracle@c9e016r3ectk1xl67j8p: /tmp>export|grep LANG
declare -x LANG="en_US.UTF-8"
declare -x NLS_LANG="AMERICAN_AMERICA.US7ASCII"
oracle@c9e016r3ectk1xl67j8p: /tmp>
再次執行包的變更,程式正確執行。
oracle@c9e016r3ectk1xl67j8p: /tmp>sqlplus IM
SQL*Plus: Release 9.2.0.8.0 - Production on Fri Jul 29 04:01:29 2011
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Enter password:
Connected to:
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.8.0 - Production
IM@im1>@/tmp/IM_SMS_20110727.pkg
Package created.
Package body created.
IM@im1>select object_type,status,count(*) from user_objects group by object_type,status;
OBJECT_TYPE STATUS COUNT(*)
------------------ ------- ----------
TYPE VALID 11
VIEW INVALID 3
INDEX VALID 399
TABLE VALID 234
PACKAGE VALID 49
SYNONYM VALID 10
FUNCTION VALID 1
SEQUENCE VALID 173
PROCEDURE VALID 22
PACKAGE BODY VALID 49
DATABASE LINK VALID 6
INDEX PARTITION VALID 79
TABLE PARTITION VALID 79
13 rows selected.
IM@im1>@/tmp/IM_WEB_ONLIE_20110727.pkg
Package created.
Package body created.
IM@im1>select object_type,status,count(*) from user_objects group by object_type,status;
OBJECT_TYPE STATUS COUNT(*)
------------------ ------- ----------
TYPE VALID 11
VIEW INVALID 3
INDEX VALID 399
TABLE VALID 234
PACKAGE VALID 49
SYNONYM VALID 10
FUNCTION VALID 1
SEQUENCE VALID 173
PROCEDURE VALID 22
PACKAGE BODY VALID 49
DATABASE LINK VALID 6
INDEX PARTITION VALID 79
TABLE PARTITION VALID 79
13 rows selected.
IM@im1>exit
Disconnected from Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
問題解決。。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22664653/viewspace-703278/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MYSQL 5.7 升級 8.0 後的 由於字符集導致的大問題 ?MySql
- spring boot 2.0.0由於版本不匹配導致的NoSuchMethodError問題解析Spring BootError
- 伺服器由於防火牆問題導致埠不通解決方法伺服器防火牆
- java由於越界導致的報錯Java
- echarts圖由於容器隱藏導致圖表不顯示問題解決辦法Echarts
- a-select由於位置不夠,導致下拉選單擋住搜尋框的問題
- 記錄一個由於倉庫層錯誤導致軟刪除失效的問題
- 【Cocos2d-x】遮蔽Emoji並解決由於Emoji導致的崩潰問題
- 關於 Laravel mix 導致 Bootstrap 失效的問題Laravelboot
- oracle兩節點RAC,由於gipc導致某節點crs無法啟動問題分析Oracle
- 由於無法分配ip而導致的FailedCreatePodSandBoxAI
- 由Nginx的DNS快取導致的訪問404NginxDNS快取
- 由於基本資料型別使用姿勢不對導致的線上"死迴圈"問題排查資料型別
- 【踩坑】spring mvc在接收請求引數時由於大小寫問題導致的接收失敗SpringMVC
- 由於CND cache導致的小程式使用者資訊串號的線上問題回顧
- openGauss 由於RemoveIPC未關閉導致資料庫crashREM資料庫
- ANALYZE導致的阻塞問題分析
- 檔案上傳經由ZUUL轉發,導致的 檔名(OriginalFilename)亂碼問題Zuul
- 關於 iconv 轉碼導致資料丟失的問題
- MOGDB/openGauss與PostgreSQL關於GBK字符集問題SQL
- MOGDB/openGauss與PostgreSQL關於GDK字符集問題SQL
- [分享]關於新版本 Composer 會導致 Class not found 的問題
- 關於 Homestead 出現 Removing package-versions-deprecated 問題REMPackage
- PostgreSQL 字符集烏龍導致資料查詢排序的問題,與 MySQL 穩定 "PG不穩定"排序MySql
- k8s中問題: waiting for a volume to be created, either by external provisioner ****or manually created by system administratorK8SAI
- 關於沒有熔斷降級導致服務重啟問題
- TypeError: Descriptors cannot not be created directly問題的解決Error
- golang slice使用不慎導致的問題Golang
- CAS導致的ABA問題及解決
- 分散式鎖導致的超賣問題分散式
- MySQL8.0 view導致的效能問題MySqlView
- Vmware相容問題導致電腦藍屏
- Asp.netcore中由於頁面編碼導致的中文亂碼ASP.NETNetCore
- 關於JDK21控制檯字符集編碼問題JDK
- str_replace導致的注入問題彙總
- [20191204]sqlplus特殊定義導致的問題.txtSQL
- shell 中的 set -e 導致的退出問題
- 未使用 `deleteLater` 而直接使用 `delete` 導致問題delete
- chorme自動升級導致跨域問題ORM跨域