2015-04-24 2 views
-1

У меня есть ошибка в моем коде процедуры в Oracle Apex.Ошибка: pls-00103 столкнулся с символом «<»

PLS-00103 encountered the symbol "<"

Я думаю, что это говорит о том, что он не распознает JavaScript для карт Google, но я не уверен. Я пытаюсь создать процедуру, которая будет вызываться PL/SQL, на вершине oracle, чтобы позволить пользователю использовать маркер, способный перетаскивать, и найти геокод.

Вот мой код:

create or replace procedure "SHOW_LOCATION"(
    map_div IN VARCHAR2 DEFAULT 'map-canvas', 
    issue_street_address IN VARCHAR2, 
    issue_post_code IN VARCHAR2, 
    city IN VARCHAR2, 
    lat_item IN VARCHAR2, 
    long_item IN VARCHAR2) 
is 
    a_map VARCHAR2 (32000); 
begin 
    a_map := 

<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script> 
<script type="text/javascript"> 
    var map; 
    var marker; 
    var streetview; 

    function initialize(myAddress, myLat, myLng){ 
     var mapOptions = { 
      zoom: 12, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     } 
     map = new google.maps.Map(document.getElementById('||''''|| map_div ||''''||'), mapOptions); 
     geocoder = new google.maps.Geocoder(); 
     geocoder.geocode({ '||''''|| 'address' ||''''||': myAddress}, function(results, status){ 
      if (status == google.maps.GeocoderStatus.OK){ 
       var markerOptions = { 
        map: map, 
        draggable: true, 
        animation: google.maps.Animation.DROP, 
        flat: false 
        position: results[0].geometry.location 
       } 
       map.setCenter(results[0].geometry.location); 
       marker = new google.maps.Marker(markerOptions); 

       google.maps.event.addListener(marker, '||''''|| 'dragstart' ||''''||', function() {map.closeInfoWindow();}) 
       google.maps.event.addListener(marker, '||''''|| 'dragend' ||''''||', function(event){ 
        document.getElementById("'||lat_item||'").value=event.latLng.lat(); 
        document.getElementById("'||long_item||'").value=event.latLng.lng(); 
       }); 
      } 
      else { 
       document.getElementById("||map_div||'").interHTML = "No map data found for this address. Did you enter correct address?"; 
      } 
     }); 
    } 
</script>; 

-- 

sys.htp.p (a_map); 
EXCEPTION 
    WHEN OTHERS 
    THEN 
    re_aplication_error (-20000, 'error in show_location: ' || SQLERRM); 
end show_location;​ 

ответ

1

Вы не прикладываются ваша строкой сценария в одинарных кавычках:

a_map := '<script type="text/javascript" ... 
... 
    } 
</script>'; 

Или, так как ваш сценарий может содержать кавычки, вы можете использовать кавычки text literal синтаксиса, поэтому вам не нужно их избегать:

a_map := q'%<script type="text/javascript" ... 
... 
    } 
</script>%'; 

Трудная вещь здесь i s выбор разделителя цитат; как обычный, как <, [, # и т. д. могут появляться в скрипте в любом случае. Я пошел на%, но вам может потребоваться изменить это, чтобы что-то, что вы уверены, не появится в тексте.

+0

спасибо, я не знал, что должен был это сделать? :) – UZIERSKI

Смежные вопросы