Oracle 49

INSERT/UPDATE를 위해 Oracle SQL의 MERGE 문에 조건 추가

INSERT/UPDATE를 위해 Oracle SQL의 MERGE 문에 조건 추가 table target_table에 RECORDS를 삽입/업데이트해야 합니다.이러한 레코드는 source_table 하나로 제공됩니다. 업데이트/target_table 삽입을 위해 MERGE를 사용하고 있습니다. MERGE INTO target_table tgt USING source_table src ON ( src.column1 = tgt.column1 and src.column2 = tgt.column2) WHEN MATCHED THEN UPDATE SET tgt.column3= src.column3, tgt.column4 = src.coulmn4 WHEN NOT MATCHED THEN INSERT ( tgt.colum..

source 2023.06.19

XA 트랜잭션의 데이터 일관성

XA 트랜잭션의 데이터 일관성 데이터베이스(예: Oracle)와 JMS 제공자(예: HornetQ)가 XA 트랜잭션에 참여하고 있다고 가정합니다.메시지는 JMS 대기열로 전송되고 일부 데이터는 동일한 분산 트랜잭션의 데이터베이스에 지속됩니다.트랜잭션이 커밋된 후 메시지 소비자는 지속적인 데이터를 읽고 별도의 트랜잭션으로 처리합니다. 첫 번째 XA 트랜잭션과 관련하여 트랜잭션 관리자(예: JBoss)는 다음과 같은 일련의 이벤트를 실행할 수 있습니다. 준비(호넷Q) 준비(오라클) 커밋(호넷Q) 커밋(Oracle) HornetQ에서 커밋이 완료된 후 소비자가 데이터를 읽기 시작하지만 Oracle에서 계속 실행되면 어떻게 됩니까?소비자가 오래된 데이터를 읽습니까? 이 질문은 XA 트랜잭션에 참여하는 모든 종류..

source 2023.06.14

JDBC를 사용할 때 SQL 문에 대한 로깅을 실행하는 방법

JDBC를 사용할 때 SQL 문에 대한 로깅을 실행하는 방법 이클립스 IDE에서 Oracle 데이터베이스에 연결하여 JDBC 프로그램을 사용하여 로그를 활성화하려고 합니다. 이 SO 포스트 JDBC 로깅을 파일화하여 아래 Java 프로그램을 만들고 Eclipse IDE에서 실행했는데 JDBC 드라이버 클래스에서 생성된 로그를 볼 수 없었습니다. import java.io.File; import java.io.FileInputStream; import java.io.PrintWriter; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Properties; impor..

source 2023.04.05

Oracle JDBC 간헐적 연결 문제

Oracle JDBC 간헐적 연결 문제 매우 이상한 문제가 발생하고 있습니다.이것은 Oracle 데이터베이스에 접속하는 매우 간단한 JDBC 사용법입니다. OS: Ubuntu Java Version: 1.5.0_16-b02 1.6.0_17-b04 Database: Oracle 11g Release 11.1.0.6.0 file jar를 하는 OJDBC14.jar 파일 항아리를 됩니다.OJDBC5.jar 6을 사용하면할 수 ).OJDBC6.jar도 같은 를 얻습니다.OJDBC5.jar OJDBC14.jar에서는 사용할 수 없는 JODB5.jar의 특정 기능이 필요합니다. 아이디어 에러 > Connecting to oracle java.sql.SQLException: Io exception: Connectio..

source 2023.03.31

시퀀스 값을 사용하여 여러 행을 Oracle에 삽입하려면 어떻게 해야 합니까?

시퀀스 값을 사용하여 여러 행을 Oracle에 삽입하려면 어떻게 해야 합니까? 이 답변에서 구문을 사용하면 하나의 문을 사용하여 여러 행을 삽입할 수 있습니다. 그러나 삽입하는 값 중 하나는 시퀀스에서 가져온 것입니다. insert into TABLE_NAME (COL1,COL2) select MY_SEQ.nextval,'some value' from dual union all select MY_SEQ.nextval,'another value' from dual ; 실행하려고 하면 ORA-02287 오류가 나타납니다.다른 방법이 없을까요?아니면 INSERT 문구를 많이 사용해야 하나요? 편집: 시퀀스를 제외한 다른 모든 열에 대해 열 이름을 지정해야 하는 경우 원래 간결성이 손실되므로 그럴 가치가 없습니..

source 2023.03.21

열 크기를 수정하는 방법

열 크기를 수정하는 방법 Oracle SQL Developer에서 Test_Project2 테이블을 만들었습니다.그 후 proj_name 컬럼이 작다는 것을 알고 다음 문장을 사용하여 컬럼을 수정하기로 했습니다. ALTER TABLE TEST_PROJECT2 MODIFY proj_name VARCHAR2(300); 그러나 Oracle SQL Developer는 어떤 이유로 세미콜론을 빨간색으로 강조 표시하며 무엇이 실수인지, 어떻게 수정해야 하는지 알 수 없습니다. Test_Project2: CREATE TABLE Test_Project2 ( proj_id number(30), proj_name VARCHAR2 (30), proj_desc VARCHAR2(300) ); Oracle SQL Develope..

source 2023.03.01

Oracle SQL에서 특정 문자까지 서브스트링을 선택하는 방법

Oracle SQL에서 특정 문자까지 서브스트링을 선택하는 방법 다음과 같은 결과가 있는 테이블 열이 있다고 가정합니다. ABC_blahblahblah DEFGH_moreblahblahblah IJKLMNOP_moremoremoremore 상기 표에서 이 열을 선택하는 쿼리를 작성할 수 있으면 좋겠지만, 언더스코어(_) 문자까지의 부분 문자열만 반환합니다.예를 들어 다음과 같습니다. ABC DEFGH IJKLMNOP SUBSTRING 함수는 위치 기반이고 언더스코어의 위치가 다르기 때문에 작업에 적합하지 않은 것 같습니다. TRIM 기능(RTRIM 기능)에 대해 생각해 보았습니다. SELECT RTRIM('listofchars' FROM somecolumn) FROM sometable 그러나 특정 목록/..

source 2023.02.22

오류: ORA-01704: 문자열 리터럴이 너무 깁니다.

오류: ORA-01704: 문자열 리터럴이 너무 깁니다. 데이터 유형이 있는 필드에서 4000자 이상의 값을 설정하려고 시도하는 동안CLOB, 다음의 에러가 표시됩니다. ORA-01704: 문자열 리터럴이 너무 깁니다. 임의의 제안입니다.무제한 문자 값을 설정해야 하는 경우 어떤 데이터 유형이 적용됩니까? 제 경우, 공교롭게도 약 1자 정도입니다.15000문자 주의: 저장하려는 긴 문자열은 ANSI로 인코딩되어 있습니다.CLOB를 사용할 때는 무엇을 사용하고 있습니까? 모든 이벤트에서 PL/SQL을 사용할 수 있습니다. DECLARE str varchar2(32767); BEGIN str := 'Very-very-...-very-very-very-very-very-very long string value..

source 2023.02.16

Oracle - 어떤 TNS 이름 파일을 사용하고 있습니까?

Oracle - 어떤 TNS 이름 파일을 사용하고 있습니까? 데이터베이스 클라이언트가 어떤 tnsnames.ora 파일을 사용하고 있는지 알 수 없기 때문에 Oracle 연결 문제가 발생할 수 있습니다. 이걸 알아내는 가장 좋은 방법이 뭐죠?++다양한 플랫폼 솔루션에 만족합니다. Oracle은 다음과 같은 유틸리티를 제공합니다.tnsping: R:\>tnsping someconnection TNS Ping Utility for 32-bit Windows: Version 9.0.1.3.1 - Production on 27-AUG-20 08 10:38:07 Copyright (c) 1997 Oracle Corporation. All rights reserved. Used parameter files: C:\..

source 2023.02.12