2016-11-02 2 views
0

안녕 사람을 삽입하고 많은 것들을 시도 할 수 없습니다 언급 내가 값을 얻을 수 아니다 것처럼 보인다 업데이트해야하는 필드에서에이펙스에서 업데이트 테이블을 할 수없는 5 버튼 오류</p> <p>내가 가지고 있지 않다 행운 여기 궁전 NULL

값이 기본값에서 변경된 경우 업데이트하려는 Apex 5 내에 2 개의 필드가 있습니다. : QUANTITY는 테이블 형식의 텍스트 필드이고 : DISC는 같은 행의 텍스트 필드이기도합니다. 이 업데이트해야하고

SALES_TEMP이 수행하는 테이블

는 열 ID, NAME, QUANTITY_TO_SELL, DISCOUNT이있는 옵션 "에만 업데이트 행과 열"로 설정 곳은 보통에 은 단일 또는 여러 행이있을 수 있습니다.

이 업데이트를 수행하는 과정에서 할당 된 PL/SQL 코드는 다음과 같습니다. 나는 시도하고 필드를 업데이트 할 때

BEGIN 
update SALES_TEMP 
set QUANTITY_TO_SELL=:QUANTITY, DISCOUNT=:DISC; 
end; 

, 그것은 QUANTITY_TO_SELL

과 할인 필드와 비슷한에 NULL을 삽입 할 수 없습니다

로 돌아갑니다.

는 지금은 쿼리 아무 문제가없는 알고 있기 때문에 나는이 할 경우 :

BEGIN 
update SALES_TEMP 
set QUANTITY_TO_SELL='2', DISCOUNT='5'; 
end; 

그것은 사실 테이블을 업데이트 않는다, 그러나 나는 때문에 테이블의 모든 행에이 업데이트를 할 것 where 절이 없습니다.

다른 옵션을 통해 살펴본 결과 필드에서 데이터를 선택하지 않는 이유를 찾을 수 없습니다. 내 주요 문제는, 정확히 작동하는 삽입 작업을 실행하는 동일한 쿼리가 있습니다.

또한 실행하면 Apex의 SQL 명령 줄 옵션에서.

update SALES_TEMP 
set QUANTITY_TO_SELL=:QUANTITY, DISCOUNT=:DISC; 

나는 :QUANTITY:DISC 값을 요청하는 팝업을 얻을 뭔가이이 텍스트 필드의 값을 받고되지 않는다는 것을 알려줍니다 그래서 그 다음 열을 업데이트합니다.

SQL 명령

은 필드가 정점에

물론 각 :ID로 할당됩니다
select ID, NAME, QUANTITY_TO_SELL as QUANTITY, DISCOUNT as DISC from SALES_TEMP; 

, :NAME:QUANTITY:DISC이다 채울 추가 할 수 있습니다.

+0

이것은 ': QUANTITY'와': DISC'가 왜 당신이 생각할 때 자신의 양식에 채워지지 않는지 묻는 복잡한 방법 인 것 같습니다. –

+1

우리가 코드를 추가하지 않으면 사람들은 코드를 추가하고 복잡하게 만들면 질문을 복잡하게 만든다는 것을 알게됩니다 :) –

+0

아마도 : QUANTITY와 : : DISC'를 채우는 데 문제가있을 것입니다. . 나는 그 어떤 코드도 보지 못했다. –

답변

0

테이블 형식 양식을 사용하고있는 것을 보면서 다음이 설정되어 있는지 확인하는 것이 좋습니다.

  1. 절차에서 (처리 중) 테이블 형식이 선택되어 있는지 확인하십시오.

  2. "이 버튼을 눌렀을 때"조건이이 프로세스를 할당 할 버튼을 사용하도록 설정되어 있는지 확인하십시오.

+0

고마워! 옵션 1이 문제를 해결했습니다. 이유는 확실하지 않지만 표 형식으로 된 동일한 쿼리가 선택되지 않았습니다. 다른 문제는 이제 모든 행이 아니라 변경된 행만 설정할 수 있어야한다는 것입니다. 어떤 아이디어? 고마워. –

+0

업데이트 문제는 다른 문제입니다. 폼에서 변경이 발생한 행과 일치하는 고유 한 것을 찾아야합니다. –

0
  1. WHERE 절없이 테이블의 모든 데이터를 업데이트하므로 항상 WHERE 절을 사용해야합니다.
  2. 테이블 속성 중 하나에 NULL을 삽입하려고하면 NULL을 삽입 할 수 없습니다. 매개 변수가 NOT NULL로 설정되어 있으므로이 문제를 피하기 위해 NVL 함수를 사용하려고 시도하면 NAME atribute는 null이 아니어야합니다.

시도는 다음과 같이 코드를 수정 :이 경우는 하나의 열을 업데이트합니다

update SALES_TEMP 
set QUANTITY_TO_SELL = :QUANTITY, 
    DISCOUNT = :DISC, 
    NAME = nvl(:NAME,'empty') 
where ID = :ID; 

.

Null 값이 발생하면 Oracle/PLSQL NVL 함수를 사용하여 값을 대체 할 수 있습니다.

+1

안녕하세요, 응답 해 주셔서 감사합니다. 내 문제는 QUANTITY_TO_SELL에 NULL을 삽입 할 수 없다는 것입니다. 이 명령은 수동으로 작업하거나 값을 하드 코딩 할 때 문제점은 코드를 사용하여 업데이트 버튼을 클릭 할 때 테이블을 업데이트하지 않는다는 것입니다. 나는 그것이': DISCOUNT'와': QUANTITY'에서 어떤 가치도 보이지 않는다고 생각합니다. –

+0

APEX에 익숙하지는 않지만, 이것이 오라클 프레임 워크의 일종이라고 생각합니다. 오라클에서 프로 시저를 호출하고 APEX에서 매개 변수를 전달하는 프로 시저를 호출하거나 APEX에 다른 매개 변수 이름이있을 수 있으므로 매개 변수 이름이 무엇인지 확인하십시오. 업데이트 SALES_TEMP QUANTITY_TO_SELL = nvl (: QUANTITY, 'empty'), DISCOUNT = : DISC, NAME = : NAME 여기서 ID = : ID; – TheName

+0

update SALES_TEMP QUANTITY_TO_SELL = nvl (: QUANTITY, 'empty'), DISCOUNT = : DISC, NAME = : NAME, '비어 있음' 여기서 ID = : ID; – TheName