최근에 APEX에 익숙해 져 있습니다. 응용 프로그램 내에서 대화 형 보고서를 실행하려고하는데 SQL 쿼리 내에서 변수를 선언 할 수 없습니다. 아래 오류입니다, 나는 또한 작동 코드가 포함되어 있습니다. get_longlat() 함수는 테스트되고 작동하며 SDO_GEOMETRY 데이터 형식을 반환합니다.plsql은 SQL select에서 변수를 사용할 수 없습니다.
ORA-06550 : 7 행, 열 12 : PLS-00306 : 잘못된 번호 또는를 호출 인수의 유형 '||' ORA-06550 : 7 행, 1 열 : PL/SQL : 문이
을 무시
DECLARE
l_query VARCHAR2(4096);
l_location SDO_GEOMETRY := get_longlat(v('P2_POSTCODE'));
BEGIN
l_query := '
SELECT
"VENUE_ID",
"VENUE_NAME",
"CITY",
"VENUE_NO",
"POSTCODE",
dbms_lob.getlength("THUMBNAIL") "THUMBNAIL",
"DESCRIPTION",
SDO_GEOM.SDO_DISTANCE(G_LOCATION, ' || l_location || ',0.005,''unit=mile'') "G_LOCATION"
FROM "GAMEVENUE"
WHERE (SDO_WITHIN_DISTANCE(G_LOCATION,' || l_location || ',''distance=250 unit=mile'') = ''TRUE'');';
RETURN l_query;
이
l_query := '
SELECT
"VENUE_ID",
"VENUE_NAME",
"CITY",
"VENUE_NO",
"POSTCODE",
dbms_lob.getlength("THUMBNAIL") "THUMBNAIL",
"DESCRIPTION",
SDO_GEOM.SDO_DISTANCE(G_LOCATION, MDSYS.SDO_GEOMETRY(2001,4326,SDO_POINT_TYPE(-4.1530439,50.371089,NULL),NULL,NULL),0.005,''unit=mile'') "G_LOCATION"
FROM "GAMEVENUE"
WHERE (SDO_WITHIN_DISTANCE(G_LOCATION,SDO_GEOMETRY(2001,4326,SDO_POINT_TYPE(-4.1530439,50.371089,null),null,null),''distance=250 unit=mile'') = ''TRUE'')';
|| 문자 유형 또는 암시 적으로 문자 유형으로 변환 할 수있는 유형에서만 작동합니다. || 연산자는 문자열과 CLOB 데이터를 연결합니다. – TurtlesAllTheWayDown