首页 文章

错误:pls-00103遇到符号“<”

提问于
浏览
-1

我在Oracle Apex的程序代码中有错误 .

PLS-00103遇到符号“<”

我认为这是说它没有识别谷歌 Map 的JavaScript,但我不确定 . 我正在尝试在oracle apex中创建一个由PL / SQL调用的过程,让用户使用可拖动标记,并找到一个地理编码 .

这是我的代码:

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 回答

  • 1

    您没有将脚本字符串括在单引号中:

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

    或者由于您的脚本可能包含引号,因此您可以使用引号text literal语法,因此您不必转义它们:

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

    这里的棘手问题是选择引号分隔符;像<,[,#等常见的那样可能会出现在脚本中 . 我已经去了%但你可能需要改变它,因为你肯定不会出现在文本中 .

相关问题