package編譯錯誤
1. 從項目的資料庫裡面 view 出的pkg 然後再PLsql 中編譯卻直接報錯!。。別人電腦上都沒錯。。
Oracle package 包含2個部分
一部分是
create or replace package PKG_LIFE as
一部分是
CREATE OR REPLACE package body PKG_LIFE as
你第一部分的代碼復制執行了么?
下面就是一個 沒有定義 程序包, 直接去編譯 程序包主體 出錯的例子代碼.
SQL> create or replace package body pkg_helloworld as
2 PROCEDURE helloworld
3 AS
4 BEGIN
5 dbms_output.put_line('Hello World');
6 END;
7 end;
8 /
警告: 創建的包體帶有編譯錯誤。
SQL> show err
PACKAGE BODY PKG_HELLOWORLD 出現錯誤:
LINE/COL ERROR
-------- -----------------------------------------------------------------
0/0 PL/SQL: Compilation unit analysis terminated
1/14 PLS-00201: 必須聲明標識符 'PKG_HELLOWORLD'
1/14 PLS-00304: 如果沒有說明, 則無法編譯 'PKG_HELLOWORLD' 主體
下面就是一個 先定義 程序包, 後編譯 程序包主體 通過的例子代碼.
SQL>
SQL> create or replace package pkg_helloworld as
2 PROCEDURE helloworld ;
3 end;
4 /
程序包已創建。
SQL>
SQL> create or replace package body pkg_helloworld as
2 PROCEDURE helloworld
3 AS
4 BEGIN
5 dbms_output.put_line('Hello World');
6 END;
7 end;
8 /
程序包主體已創建。
2. oracle 創建存儲過程報錯, PACKAGE BODY SCOTT.EMP_SAL_MANAGEMENT 編譯錯誤
子程序或游標 'P_P_BONUS' 已在程序包說明中聲明, 必須在程序包體中對其進行定義。意思是你已經聲明了這個存儲過程P_P_BONUS,但是沒有在包體(PACKAGE BODY )中定義,就是你還需要在包體中定義P_P_Bonus的實現部分
3. 解決MonoForAndroid不能編譯問題
最近一直在用Xamarin Mono For Android,因為國內的資料太少,所以很多問題都需要自己動手去弄清除。前幾天,很多群友反映了不能打包(或Debug)APK文件的問題,提示是這樣的,錯誤:Could not create the Android package. See the Output (Build) window for more details.Mono For Android !錯誤:Could not create the Android package. See the Output (Build) window for more details.
吾樂吧軟體站提醒大家,解決方法:
可能性1:可能是你的VS創建的項目路徑含有中文或其他雜亂數據,建議直接創建在 D:\ 試試!!
2014年9月9日補充說明:
可能性2:錯誤詳情裡面有這么一句話:找不到D:\Program Files\Android\android-sdk\tools\\zipalign.exe
直接去這個目錄 D:\Program Files\Android\android-sdk\build-tools\20.0.0\zipalign.exe
PS:上面路徑中的20.0.0,換成你本地相應的路徑,反正有zipalign.exe就可以
拷貝zipalign.exe到D:\Program Files\Android\android-sdk\tools\zipalign.exe,然後重啟VS,接著重新編譯就可以了
2013年4月20日補充說明:
Deployment failed because of an internal error: Failure [INSTALL_FAILED_INVALID_URI]
如果大家發現,路徑沒有中文目錄、特殊字元,但還是不能打包編譯,可能是因為你的APK文件已經生成了,但是被其他程序佔用(例如:你用騰訊手機管家正在使用你的APK文件),請結束其他的程序,確定沒有被佔用,這樣就可以順利打包編譯了。
4. go build失敗,報方法undefined
在編寫CLI腳本時,我遇到了一個常見問題:當嘗試用`go build`編譯代碼時,程序會報錯指出某個引用的方法未定義。雖然在集成開發環境(IDE)中,如GoLand,代碼能夠正常運行,但在進行編譯時遇到了問題。
問題的核心在於Go語言的包(package)概念。通常,我們將主流程代碼放在`main`包中,而其他方法或函數則在其他包中定義。在IDE中,點擊主文件旁邊的運行按鈕時,編譯器能夠正確地解析並執行代碼。然而,當使用`go build`命令進行編譯時,問題就出現了。
原因在於,`main`包是一個特殊的包,它定義了一個獨立可執行的程序,而不僅僅是庫。當使用`go build`命令時,Go編譯器將創建一個可執行文件,這個過程要求所有引用的函數和方法都在同一個包中定義,或者在導入的包中定義。
假設存在以下兩個文件:
1. `main.go`,包含主程序和導入的其他包。
2. `operation.go`,包含需要在主程序中調用的方法。
錯誤在編譯時出現,因為`main`包的目錄名稱與`operation`包的目錄名稱不同。在`main.go`中直接調用`operation.go`中的方法時,編譯器找不到定義,從而引發「方法未定義」的錯誤。
解決這個問題的方法有兩種:
1. **將`operation.go`放入一個單獨的包**,然後在`main.go`中導入這個新包。這確保了所有需要的函數和方法都在同一個包中定義,使得`go build`能夠正確編譯程序。
按照上述方法修改代碼後,再次執行`go build`命令時,程序將不再報錯,一切恢復正常。