반응형

Oracle 42

SQL 쿼리 동등성 입증

SQL 쿼리 동등성 입증 두 쿼리가 기능적으로 동일하다는 것을 어떻게 증명하시겠습니까? 예를 들어, 두 쿼리 모두 항상 동일한 결과 집합을 반환합니다. 제가 이것을 할 때 특정한 질문을 염두에 두었기 때문에, 저는 @dougman이 제안한 대로, 관련된 테이블의 약 10% 이상의 행을 수행하고 결과를 비교하여, 잘못된 결과가 발생하지 않도록 했습니다.주어진 입력 집합을 기준으로 두 쿼리 출력을 비교하여 차이점을 찾는 것이 최선입니다.모든 입력에 대해 항상 동일한 결과를 반환한다고 말하는 것은 실제로 데이터에 따라 다릅니다. Oracle의 경우 최상의 접근 방식(매우 효율적)은 아니지만 다음과 같습니다(+CtrlF 두 표의 내용 비교). http://www.oracle.com/technetwork/issu..

programing 2023.07.12

Oracle용 MyBatis 배치 삽입/업데이트

Oracle용 MyBatis 배치 삽입/업데이트 저는 최근에 바티스 사용법을 배우기 시작했습니다.저는 지금 이러한 시나리오에 직면해 있습니다. 웹 서비스를 통해 계속해서 개체의 새 목록을 가져와야 합니다. 그런 다음 이 목록을 위해서는 각 개체를 myBatis를 통해 Oracle DB 테이블에 삽입/업데이트해야 합니다. 까다로운 부분은 단순히 매번 일괄 삽입을 할 수 없다는 것입니다. 일부 개체가 DB에 이미 존재할 수 있기 때문입니다. 이러한 레코드의 경우 새 삽입 대신 해당 개체의 필드를 업데이트해야 합니다. 현재 제 솔루션은 Java를 사용하여 웹 서비스에서 개체 목록을 작성하고 각 개체를 루프하고, null이 아닌 경우(이미 DB에 있음) myBatis 선택을 수행한 다음, myBatis 업데이트..

programing 2023.07.07

Oracle - 필드에 소문자가 있는 위치를 선택합니다.

Oracle - 필드에 소문자가 있는 위치를 선택합니다. Oracle 9.2.0.6 데이터베이스에 사용자 테이블이 있습니다.필드 중 두 개는 varchar(last_name 및 first_name)입니다. 행을 이 테이블에 삽입할 때 이름과 성 필드는 모두 대문자여야 하지만, 이 두 필드의 일부 값은 대소문자가 혼합되어 있습니다. 테이블에 소문자가 있는 이름 또는 성이 있는 모든 행을 표시하는 쿼리를 실행하려고 합니다. 인터넷을 검색해보니 REGEXP_LIKE가 나왔는데, 그것은 새로운 버전의 오라클용임에 틀림없습니다. 저에게는 안 맞는 것 같습니다. 제가 시도한 또 다른 것은 "abcde..."를 번역하는 것이었습니다.z"에서 "$$$$$$...그런 다음 내 필드에서 '$'를 검색합니다. 하지만 더 나..

programing 2023.06.27

Oracle에 대한 Linkq를 사용하는 방법이 있습니까?

Oracle에 대한 Linkq를 사용하는 방법이 있습니까? DataContext를 사용하여 Oracle 데이터베이스에 연결할 수 있지만 Oracle 데이터베이스에 대해 쿼리를 실행할 때 오류가 발생합니다.생성된 SQL을 살펴보았는데 Oracle PSQL이 아닌 MSSQL용입니다. 오라클 데이터베이스에 대해 LINQ를 사용할 수 있는 사용하기 쉬운 래퍼를 아는 사람이 있습니까?아니요, LINQ to SQL은 대부분 MS SQL 전용입니다. 클라이언트 드라이버라고 생각하면 됩니다. Microsoft는 Oracle 및 DataDirect가 Oracle 및 기타 비MS 데이터베이스 서버용 공급자를 개발하는 데 도움을 주고 있었습니다.우리는 데바트의 오라 다이렉트 드라이버를 사용합니다.ADO.NET Entity ..

programing 2023.06.27

FK 제약 조건(Oracle) 추가 시 권한 부족

FK 제약 조건(Oracle) 추가 시 권한 부족 ALTER TABLE LAB_ADMIN_USER.TEST_TEMPLATE_ABBR ADD ( CONSTRAINT TEST_TEMPLATE_ABBR_R01 FOREIGN KEY (test_template_id) REFERENCES LAB_ADMIN.TEST_TEMPLATE (test_template_id) ON DELETE CASCADE) 위의 명령을 실행할 때 'ORA=01031: 불충분한 권한'이 발생할 가능성이 가장 높은 원인은 무엇입니까?즉, LAB_ADMIN_USER에 없는 권한은 무엇입니까? 이미 테이블을 생성하여 FK 제약 조건을 LAB_ADMIN_USER로 추가하려고 했습니다. 기본 키가 있는 테이블이 다른 스키마(LAB_ADMIN)에 의해 ..

programing 2023.06.22

Oracle: Oracle SQL에서 16진수를 10진수로 변환하려면 어떻게 해야 합니까?

Oracle: Oracle SQL에서 16진수를 10진수로 변환하려면 어떻게 해야 합니까? Oracle SQL을 사용하여 16진수를 10진수로 변환하거나 다시 변환하려면 어떻게 해야 합니까?8.1.5 이상을 사용하는 경우 다음을 사용할 수 있습니다. 16진수에서 10진수로 변환하는 방법 select to_number('AA', 'xx') from dual; 10진수에서 16진수로 변환하는 방법 select to_char(111, 'xxxx') from dual; SELECT TO_NUMBER('DEADBEEF', 'XXXXXXXX') FROM dual --- 3735928559 SELECT TO_CHAR(3735928559, 'XXXXXXXX') FROM dual --- DEADBEEF Oracle 8i..

programing 2023.06.17

"IN" 연산자가 오라클에서 LIKE 와일드카드(%)를 사용할 수 있습니까?

"IN" 연산자가 오라클에서 LIKE 와일드카드(%)를 사용할 수 있습니까? 나는 이 질문을 검색했고 MySQL에서 답을 찾았지만, 이것은 그 진술이 Oracle로 넘어가지 못하는 사건 중 하나입니다. "IN" MySQL 문에서 와일드카드를 사용할 수 있습니까? 내 질문과 내가 하고 싶은 것을 거의 요약하지만 오라클에서는. 저는 법적으로 동등한 것을 찾고 싶습니다. Select * from myTable m where m.status not in ('Done%', 'Finished except%', 'In Progress%') 도와주셔서 감사합니다.Select * from myTable m where m.status not like 'Done%' and m.status not like 'Finished ..

programing 2023.06.17

Oracle SQL에 "존재하지 않는 경우 create sequence..."와 같은 것이 있습니까?

Oracle SQL에 "존재하지 않는 경우 create sequence..."와 같은 것이 있습니까? Oracle 8 DB를 사용하는 애플리케이션의 경우 SQL*Plus에 복사하여 붙여넣을 수 있는 트리거, 시퀀스 등을 설정하는 SQL 스크립트를 제공합니다.내가 만들려는 시퀀스가 이미 존재하는 경우 스크립트가 오류와 함께 중지되지 않았으면 합니다.트리거의 경우 "create or replace trigger..."를 사용하여 쉽게 이 작업을 수행할 수 있지만 시퀀스의 경우에는 작동하지 않습니다.또한 "만약 내 시퀀스가 존재하지 않는다면 시퀀스를 생성하세요..."를 시도했지만 역시 그렇지 않았습니다.다른 대안이 있습니까? 또는 이것이 불가능한 경우 SQL*Plus가 스크립트를 중단하지 않고 "drop se..

programing 2023.06.17

Oracle SQL - NULL 값이 있는 max()

Oracle SQL - NULL 값이 있는 max() 시작 날짜와 종료 날짜가 각각 바인딩된 일련의 시간 기반 이벤트가 있는 테이블이 있습니다.가장 최근(현재) 이벤트의 경우 종료 날짜가 NULL입니다.중복 행을 축소하고 가장 빠른 시작 날짜와 가장 최근의 종료 날짜만 표시하려고 합니다.NULL이 날짜 필드에 있으면 해당 행은 무시됩니다.NVL()로 종료 날짜 값을 더미로 만들 수 있지만, 그러면 프런트 엔드 로직이 해당 값을 검색하고 대체합니다. NULL을 높게 정렬하기 위해 max() 함수를 얻는 방법이 있습니까? CREATE TABLE CONG_MEMBER_TERM ( CONG_MEMBER_TERM_ID NUMBER(10) NOT NULL, CHAMBER_CD VARCHAR2(30 BYTE) NOT..

programing 2023.06.17

SQL: 사용 가능한 모든 테이블에서 모든 데이터 삭제

SQL: 사용 가능한 모든 테이블에서 모든 데이터 삭제 오라클 DB를 사용하여 30개 이상의 테이블을 유지 관리하고 있는데, 모든 테이블에서 모든 데이터를 삭제하려면 어떻게 해야 합니까?데이터만 삭제하고 테이블은 삭제하지 않습니다.'ALTER TABLE XXX DISABLE ALL CONSTARINGS' 명령이 없습니다. 이렇게 제안합니다. BEGIN FOR c IN (SELECT table_name, constraint_name FROM user_constraints WHERE constraint_type = 'R') LOOP EXECUTE IMMEDIATE ('alter table ' || c.table_name || ' disable constraint ' || c.constraint_name); ..

programing 2023.06.17
반응형