Programing

Oracle 데이터베이스에 부울 유형이 있습니까?

lottogame 2020. 4. 17. 08:09
반응형

Oracle 데이터베이스에 부울 유형이 있습니까?


BITMs SQL Server 데이터 유형 과 유사한 Oracle 데이터베이스에 부울 유형이 있습니까?


부울 데이터 유형이 Oracle SQL (PL / SQL 아님)에 누락되었을뿐만 아니라 대신 사용할 항목에 대한 명확한 권장 사항도 없습니다. asktom 에서이 스레드참조하십시오 . 추천에서 독일인 프로그래머가 대신 영어를 사용 하는 사람이 지적 CHAR(1) 'Y'/'N'NUMBER(1) 0/1전환합니다 .'Y'/'N''J'/'N'

최악의 것은 그들이 바보를 방어하는 것처럼이 어리석은 결정을 방어한다는 것입니다 ''=NULL.


아니.

사용할 수 있습니다 :

IS_COOL NUMBER(1,0)

1 - true
0 - false

--- 오라클을 즐기십시오

또는 여기에 설명 된대로 문자 Y / N 사용 하십시오.


Ammoq 및 kupa의 답변에 따라 기본값 0을 사용하여 number (1)을 사용하고 null을 허용하지 않습니다.

다음은 시연을 위한 추가 열입니다 .

ALTER TABLE YourSchema.YourTable ADD (ColumnName NUMBER(1) DEFAULT 0 NOT NULL);

이것이 누군가를 돕기를 바랍니다.


SQL 수준이 아니며 유감입니다. PLSQL에는 하나가 있습니다.


아니요, Oracle Database에는 부울 유형이 없지만 다음과 같이 할 수 있습니다.

점검 제한 조건을 열에 둘 수 있습니다.

테이블에 검사 열이 없으면 추가 할 수 있습니다.

ALTER TABLE table_name
ADD column_name_check char(1) DEFAULT '1';

레지스터를 추가하면 기본적으로이 열은 1이됩니다.

여기에 열 값을 제한하는 검사를하고 단지 1 또는 0 만 넣으십시오.

ALTER TABLE table_name ADD
CONSTRAINT name_constraint 
column_name_check (ONOFF in ( '1', '0' ));

부울 유형이 존재하지 않지만이 대신 1/0 (유형 번호) 또는 'Y'/ 'N'(유형 문자) 또는 'true'/ 'false'(유형 varchar2)를 사용할 수 있습니다.


부울 PL / SQL에서 사용하기위한 종류 의 열 데이터 형식으로 사용될 수 있지만, 어느 것도.


일반적인 공간 절약 트릭은 부울 값을 NUMBER가 아닌 Oracle CHAR저장 하는 것입니다.


아직 아무도 언급하지 않았기 때문에 RAW (1)을 사용하는 것도 일반적인 관행으로 보입니다.


DECLARE
error_flag  BOOLEAN := false;
BEGIN

error_flag := true;
--error_flag := 13;--expression is of wrong type

  IF error_flag THEN 

UPDATE table_a SET id= 8 WHERE id = 1;

END IF;
END;

참고 URL : https://stackoverflow.com/questions/3726758/is-there-any-boolean-type-in-oracle-databases

반응형