programing

Oracle Apex : PL/SQL Block의 자바스크립트 코드

css3 2023. 10. 2. 15:20

Oracle Apex : PL/SQL Block의 자바스크립트 코드

PL/SQL 블록에서 자바스크립트 코드를 가질 수 있습니까?제출 시 자바스크립트 코드가 포함된 pl/sql 블록을 오라클 Apex 페이지 프로세스에서 실행하고 싶습니다.

DECLARE
  v_count   NUMBER;

  BEGIN
        select count(*) into v_count
        from summary
        where prd_items = 'Total';

 HTP.p ('<script type="text/javascript">');
 HTP.p (   'alert(''The value of Total for BU is ' ||v_count|| '.\n'
      || 'You have to enter correct values to proceed further \n'');');
 HTP.p ('</script>');
END; 

있습니다Submit내 페이지 영역의 버튼과 이 pl/sql 블록은 페이지 처리 항목이며 페이지 제출 시 실행됩니다(Conditional:Submit).

그런데 알림창이 뜨지 않습니다.조언 좀 해주세요.

감사해요.

PL/SQL 블록에서 자바스크립트 코드를 가질 수 있습니까?

  • 네.

하지만 당신이 하려는 일은 제출 후 자바스크립트 기능을 통과하는 것으로 작동하지 않습니다.실행 시점을 AFTER HEADER로 변경할 경우에만 작동합니다.

또는 입력한 값만 유효성 검사하고 APEX 유효성 검사를 사용하지 않으려면 APEX_ERROR 패키지를 사용할 수 있습니다.이거 먹어봐요.

DECLARE
  v_count   NUMBER;

  BEGIN
        select prd_items into v_count
        from summary
        where prd_items = 'Total';
        -- I dont really know what you want to 
        --accomplish with this query but Im pretty sure 
        --It will not return a number
        -- if you want to count the number of prd_items it should be like this
        --select COUNT(*) 
        --into v_count
        --from summary
        --where prd_items = 'Total';


    APEX_ERROR.ADD_ERROR(
      p_message            => 'The value of Total for BU is '||v_count||'.<br>'||
                              'You have to enter correct values to proceed further',
      p_display_location   => apex_error.c_inline_in_notification 
    );  

END; 

편집: 카운트가 100과 같지 않으면 오류를 표시하려면 다음과 같이 수행합니다.

DECLARE
  v_count   NUMBER;

  BEGIN

     Select COUNT(*) 
     into v_count
     from summary
     where prd_items = 'Total';

  IF v_count != 100 THEN
    APEX_ERROR.ADD_ERROR(
      p_message            => 'The value of Total for BU is '||v_count||'.<br>'||
                              'You have to enter correct values to proceed further',
      p_display_location   => apex_error.c_inline_in_notification 
    );  


 END IF;
END; 

pl/sql 프로시저에서 javascript 코드를 삽입하려면 "Before Header" 지점에 프로시저를 배치해야 합니다.하지만 저는 이것이 여러분이 이루고자 하는 것에 대한 최선의 해결책이라고 생각하지 않습니다.

당신이 하려는 것은 유효성 검사를 추가하는 것입니다.그렇다면 꼭짓점 유효성 검사를 사용하지 않는 이유는 무엇입니까?다음과 같은 옵션을 사용하여 유효성 검사를 만듭니다.

  1. 검증 수준을 식별합니다.페이지 항목
  2. 검증할 페이지 항목을 식별합니다.원하는 항목을 선택합니다.
  3. 유효성 검사 유형(PL/SQL)을 선택합니다.
  4. 만들 유효성 검사 유형을 선택합니다.함수 반환 오류 텍스트
  5. 유효성 검사 코드:
    DECLARE  v_count          NUMBER;
  V_validation_msg VARCHAR2(500);
BEGIN
  SELECT prd_items INTO v_count FROM summary WHERE prd_items = 'Total';
  V_validation_msg:='The value of Total for BU is ' ||v_count|| '.\n' || 'You have to enter correct values to proceed further';
  IF 1= 1 THEN --add some condition here if you want
    RETURN V_validation_msg;
  ELSE
    RETURN NULL;
  END IF;
END;
  1. 버튼을 눌렀을 때:Submit(제출) 버튼.

언급URL : https://stackoverflow.com/questions/34263401/oracle-apex-javascript-code-in-pl-sql-block