2014-12-20 48 views
-1

我得到這個錯誤消息:ORA-06550:行3,列2:PLS-00103:出現符號爲 「1」 在需要下列之一時:

ORA-06550:行3,列2:PLS-00103:在需要下列之一時出現符號爲 「1」

開始功能編譯程序亞型類型當前光標刪除存在現有

對於這個代碼的Oracle APEX的Web應用程序:

declare 
    1_address varchar2(4000); 
    1_url  varchar2(32000); 
    1_response varchar2(3200); 
begin 
    1_address := :P3_STREET || ',' || :P3_CITY; 
    if :P3_STATE is not null then 
    1_address := 1_address || ',' || :P3_STATE; 
    end if; 
    if :P3_COUNTRY is not null then 
    1_address := 1_address || ',' || :P3_COUNTRY; 
    end if; 
    1_address := replace(1_address, ' ', '+'); 

    1_url  := 'http://maps.google.com/maps/geo?q=' || 1_address || '&' || 
        'output=c sv' || '&' || 'key=' || :API_KEY; 
    1_response := utl_http.request(1_url, APEX_APPLICATION.G_PROXY_SERVER); 
    :P3_RESPONSE := 1_response; 
    :P3_LOCATION := substr(1_response, instr(1_response, ',', 1, 2) + 1); 
end; 

我想谷歌地圖整合到我的應用程序。

我跟着this指令,但它不起作用。

有人有解決方案的想法嗎?

+0

請編輯您的代碼,使其可讀。提示:在代碼中使用'{}'按鈕或在每行的開頭放置四個空格。 –

回答

3

Oracle命名約定要求(見here):

  • 不帶引號的標識符必須與從數據庫中的字符集的字母開始。帶引號的標識符可以以任何字符開頭。
  • 這同樣也適用於PL/SQL變量名(見here):

    變量名可以由字母,美元符號,下劃線, 和數字符號。

    無法使用其他字符。

    變量名稱必須以字母開頭,然後可以使用允許的字符的任何組合 。

    變量名的最大長度爲30個字符。

    變量名稱,如關鍵字和其他標識符的變量名稱,不區分大小寫 。

    因此,將變量的名稱更改爲Oracle可接受的內容。換句話說,不要用1來啓動它們。

    +1

    作爲補充,通過字母'l'開始_local變量_是一種常見的做法。 在複製代碼時,您只是簡單地將它們誤認爲是'1'(數字_one_)。 –

    +0

    @SylvainLeroux。 。 。這是一個很好的觀點。我沒有想到這一點,這是很有道理的。 –

    相關問題