나는 이런 식으로 준 부울 열을 만들 : 나는 현재 user_tab_columns
를 근근이 살아가고있어 주어진 열이 부울인지 여부를 판단 할 수 있도록하고 싶습니다Oracle : 열이 "부울"인지 확인하는 방법?
CREATE TABLE foo
bar NUMBER(1) DEFAULT 0 NOT NULL CHECK (hide IN (0, 1))
.
SELECT column_name,
(SELECT COUNT(*)
FROM all_constraints
WHERE table_name = table_name
AND constraint_type = 'C'
AND REGEXP_LIKE(search_condition, '^ *' || column_name || ' +IN *\(*0, *1 *\) *$', 'i')) is_boolean
FROM user_tab_columns;
그러나 나는 다음과 같은 오류 받고 있어요 : 지금까지, 나는이있어
ORA-00932: inconsistent datatypes: expected NUMBER got LONG
00932. 00000 - "inconsistent datatypes: expected %s got %s"
*Cause:
*Action:
Error at Line: 6 Column: 31
나는 search_condition
데이터 유형 LONG
때문에이 것을 배웠고, REGEXP_LIKE()
예상하는 것을 문자 유형이지만이 문제를 해결하는 방법을 모르겠습니다.
나는 올바른 방향으로 가고 있습니까? 그렇다면 어떻게 오류를 수정합니까? 그렇지 않은 경우이 작업을 수행하는 더 좋은 방법은 무엇입니까?
죄송합니다. Stack Overflow는 게시물 제출 및 수정시 오류를 표시합니다. 이것은 진짜 질문이었습니다. ( – FtDRbwLXw6
내 CREATE TABLE 쿼리를 감싸는 괄호'('')'를 좋아하지 않는 것 같습니다 ... ???? – FtDRbwLXw6
개인적으로 나는 CHAR (1)을 선호합니다. IMO 번호는 CHAR 필드가 사용되지 않는 방식으로 오용되기 쉽습니다 .YMMV. –