본문 바로가기

DataBase29

Oracle ORA-01795 에러 – IN 절 1000개 초과 시 발생하는 SQLSyntaxErrorException Oracle ORA-01795 에러 – IN 절 1000개 초과 시 발생하는 SQLSyntaxErrorException1. 에러 개요Spring 기반 애플리케이션에서 Oracle DB 쿼리를 실행하는 도중 아래와 같은 예외가 발생했습니다.org.springframework.jdbc.BadSqlGrammarException:### Error querying database.Cause: java.sql.SQLSyntaxErrorException: ORA-01795: maximum number of expressions in a list is 1000### The error may exist in URL [jar:file:/app.jar!/BOOT-INF/classes!/mapper/example-mapper.. 2025. 6. 17.
Oracle|오라클 DB 버전 확인 방법 오라클 DB 버전 확인 방법SELECT * FROM v$version; Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production 2025. 4. 23.
MySQL|MySQL Workbench 를 이용한 Dump Import MySQL Workbench 를 이용한 Dump Import 1. 좌측 상단의 Data Import/Restore 클릭  2. Dump 파일이 생성된 Folder로 이동 하단의 Select Database Objects to Import에 Import할 대상이 체크 되어있는지 확인 3. 상단 Import Progress 탭 클릭 후 하단의 Start Import 클릭 4. Import 완료 확인Import 시 권한 에러가 나는 분들은 하기 링크 참고 부탁 드립니다.2025.02.13 - [Solution] - MySQL|error 1227 (42000) at line 18: access denied; you need (at least one of) the super, system_variables_adm.. 2025. 2. 17.
MySQL|MySQL Workbench를 이용한 DB 덤프 뜨기 MySQL Workbench 를 이용한 DB Export 1. 좌측 상단의 Data Export 클릭 2. Export Data 설정 Tables to Export 내 덤프 뜰 Schema와 Table 선택,하단 Objects to Export 에서 Stored Procedures, Events, Trigger 덤프여부 설정Export Option 내 경로 설정 3. Data Export 상단 Export Progress 탭으로 이동하여 하단의 Start Export 클릭 4. Export 완료 확인 2025. 2. 13.
[Oracle] 대량 데이터 인서트 하기 (Bulk Data Insert) [Oracle] 대량 데이터 인서트 하기 (Bulk Data Insert) 속도 : 4 > 3 > 2 > 1 1. INSERT INTO로 건별 INSERT 건별 Commit으로 속도가 느림 INSERT INTO [TABLE] VALUES ('val1','val2','val3'); INSERT INTO [TABLE] VALUES ('val1','val2','val3'); INSERT INTO [TABLE] VALUES ('val1','val2','val3'); INSERT INTO [TABLE] VALUES ('val1','val2','val3'); INSERT INTO [TABLE] VALUES ('val1','val2','val3'); 2. INSERT ALL 1번보다 빠름, 1번의 commit INS.. 2022. 8. 3.
[MSSQL] BEGIN, ROLLBACK, COMMIT TRANSACTION --트랜젝션 시작 BEGIN TRAN SELECT ~~~ INSERT ~~~ UPDATE ~~ -- @@ERROR은 성공 시 0, 실패 시 다른 값이 return됨 IF @@ERROR0 BEGIN -- 실패시 원상복구 ROLLBACK TRAN END -- 성공시 COMMIT TRAN 2021. 4. 2.
[MSSQL] index 확인 MSSQL index 확인 방법 sp_helpIndex [테이블명] 실행 결과 2021. 3. 9.
[MSSQL] SQL 합집합, 교칩합, 차집합 구하기 [MSSQL] SQL 합집합, 교칩합, 차집합 구하기 * SELECT되는 컬럼의 갯수는 일치해야함 SELECT [Column1],[Column2],[Column3],[Column4],[Column5]FROM [Table1]WHERE 조건 -- UNION -- 중복을 삭제한 합집합-- UNION ALL -- 중복을 포함한 합집합-- EXCEPT -- 차집합-- INTERSECT -- 교집합 SELECT [Column1],[Column2],[Column3],[Column4],[Column5]FROM [Table2]WHERE 조건 2018. 10. 31.
[MSSQL] 프로시저(Stored Procedure)내 문자열 검색 [MSSQL] 프로시저(stored procedure)내 문자열 검색, 문자열 찾기How to find specific text in stored procedure 프로시저내에서 특정 문구를 검색 할 경우 사용 RIGHT WAY) --1) SELECT DISTINCT a.nameFROM sysobjects AS aLEFT JOIN syscomments AS b ON a.id = b.idWHERE a.xtype = 'P'AND b.text LIKE '%[TEXT]%' --2)SELECT OBJECT_NAME(object_id), OBJECT_DEFINITION(object_id) FROM sys.procedures WHERE OBJECT_DEFINITION(object_id) LIKE '%[TEXT]%' .. 2018. 10. 1.
[MSSQL] 사용자 정의 테이블 형식 지정 및 사용 [MSSQL] 사용자 정의 테이블 형식 지정 및 사용 --생성 CREATE 프로그래밍 기능 > 유형 > 사용자정의테이블형식 > CREATE CREATE TYPE [MYTABLETYPE] AS TABLE(column1 int(10),column2 varchar(10))GO -- 삭제 DROP DROP TYPE [MYTABLETYPE] GO -- 사용 USE 프로시저에서 부를 경우 CREATE PROCEDURE sp_AAA@count int,[@변수명] [사용자정의테이블형식] READONLY //READONLY필수AS How to use in procedure CREATE PROCEDURE sp_AAA@count int,[@param] [userType] READONLY //READONLY is mandat.. 2018. 7. 4.
[MSSQL] 인덱스(index) 관련 쿼리 --인덱스 생성 CREATE INDEX [INDEX NAME] ON [TABLE NAME](COLUMN NAME) --인덱스 정보 확인--인덱스명(index_name), 인덱스 설명 (index_description), 인덱스 키(index_keys) EXEC sp_helpindex --인덱스 정보조회 (단편화) DBCC showcontig [TABLE NAME] --인덱스 통계보기 DBCC show_statistics ([TABLE NAME], [INDEX NAME]) *참고Updated : 통계가 최종 업데이트 된 날짜Rows: 총 행수Rows Sampled : 샘플링된 행 수 (통계 정보를 구하기 위해 샘플링된 행 수로 행 수가 많을 경우 샘플링함)Steps : Histogram 단계수(MAX 20.. 2018. 6. 5.
[MSSQL] NUMERIC 선언 방법 [MSSQL] NUMERIC 선언 방법 NUMERIC([최대 자릿수], [소수점 아래 자릿수]) 로 소수점 아래 자리를 선언하지 않아도 실행에는 상관 없으나 받은 값에 소수점 아래 자리가 있을 경우 전체가 표기되지 않음 --SELECT Result : 55000DECLARE @MONEY NUMERIC(10) --SELECT Result : 55000.5--DECLARE @MONEY NUMERIC(10,1) --SELECT Result : 55000.56--DECLARE @MONEY NUMERIC(10,2) --SELECT Result : 55000.568--DECLARE @MONEY NUMERIC(10,3) SET @MONEY = '55000.568'SELECT @MONEY 2018. 5. 28.
[MSSQL] 격리수준 (TRANSACTION ISOLATION LEVEL) 커밋되지 않은 데이터를 읽을 수 있는 수준으로두가지 방법이 존재함. 실제로 UPDATE되지 않고 ROLLBACK될 경우 기존데이터와 다른 값을 SELECT하게 됨 즉, 참조 무결성을 깨뜨릴 수 있다는 단점이 있으나그럴 경우가 극히 드문 경우 자주 사용 -- 1. 해당 SELECT 문장에만 적용 SELECT * FROM [TABLE NAME] WITH (NOLOCK) WHERE ~~~ -- 2. 해당 SESSION에 모두 적용 SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT ~~~SET ~~~INSERT~~~ 2018. 5. 24.
[MSSQL] 테이블 형식 확인 When you checking column format. sp_columns [table Name] SELECT * FROM information_schema.columns WHERE table_name = '[table Name]' SQL)sp_columns [table Name] Result) SQL)SELECT * FROM information_schema.columns WHERE table_name = '[table Name]' Result) 2018. 3. 13.
[MSSQL] 데이터에서 enter, tab 제거 데이터 출력시 탭, 엔터, 개행 제거replace Tab, Line feed(LF), Carriage return(CR) Tab(탭) char(9) Line feed(LF, 개행) char(10) Carriage return(CR) char(13) Enter char(10) + char(13) example) SELECT REPLACE(REPLACE(REPLACE('text',char (9), ''), char(10), ''), char(13),'') 2018. 3. 7.
[MSSQL] 프로시져 정보보기 MSSQL프로시져 업데이트 기록 보기 프로시져 업데이트 시 최종 적용 날짜가 궁금할 경우 If you want to check procedure update or modify date, SQL)SELECT ao.name, modify_date as modify, *FROM sys.all_objects aoWHERE ao.type ='P'ORDER BY modify_date DESC Result) 2018. 2. 13.
[MSSQL] 두개 이상 필드 값 비교 ORDER BY [MSSQL] 두개 이상 필드 값 비교 ORDER BY 두개 이상 필드값을 비교하여 정렬 해야할 경우 SELECT seq, addDt, moddt, * FROM [tableName] 각각 ORDER BY를 하면 첫 필드 부터 정렬 됨normal order by sortingSELECT * FROM [tableName] ORDER BY modDt DESC, addDt DESC Example) CASE문으로 조건을 주어 두 필드 이상의 값을 합하여 비교 가능using case with mssql SELECT * FROM [tableName] ORDER BY (CASE WHEN modDt '' Then modDt ELSE addDt END) DESC Example) 2017. 7. 26.
[MSSQL] 원격 프로시저 실행하기 RPC에 대해 구성되지 않았습니다. 에러 발생할 경우 -- 연결된 서버로부터 로컬 서버로의 RPC 내보내기 활성화-- from linked server to local serverEXEC sp_serveroption '[server IP]', 'RPC', TRUE -- 로컬 서버로부터 연결된 서버로의 RPC 내보내기 활성화-- from local server to linked serverEXEC sp_serveroption '[server IP]', 'RPC OUT', TRUE EXEC [serverIP].[serverName].[dbo].[Procedure Name] 'value','value','value' ... example)EXEC sp_serveroption '111.11.11.1', 'RPC.. 2017. 6. 26.
[MSSQL] 쿼리 단축키 지정하기 [MSSQL] 쿼리 단축키 지정하기 MSSQL을 쓰다보면 자주 쓰는 쿼리가 있음.예를들어 테이블 전체를 확인하는 SELECT * FROM [TABLE]데이블 전체의 갯수를 확인하는 SELECT count(*) FROM [TABLE] 등 자주 쓰는 쿼리는 쿼리 단축키로 지정해 놓고 쓰면 쉬움 1. 도구 > 옵션 선택 2. 환경 > 키보드 > 쿼리 바로가기 선택 3. 위와 같이 단축키 옆에 자주 쓰는 쿼리를 넣고 저장하면 됨 [Table]만 쓰고 단축키를 누르면 단축키에 저장된 결과가 나옴 참고로 내가 쓰고 있는 단축키들) SELECT TOP 100 FROM : 100개의 행만 노출(테이블에 저장되어있는 형식 등을 보기 좋음) SELECT COUNT (*) FROM : 테이블의 행 수(테이블의 총 행수를 보.. 2017. 3. 28.
[MSSQL] 랜덤 노출 ORDER BY NEWID() 랜덤하게 특정 개수의 행 추출 32 hex code로 되어 있는 Uniqueidentity 타입 함수. n개의 records에서 10개만 랜덤하게 추출하고 싶을 때 -- 10개의 데이터가 랜덤으로 노출됨 쇼핑몰에서 rank에 상관 없이 랜덤으로 상품 노출 하고 싶을 때 자주 사용 NEWID() selected random records NEWID() returns Uniqueidentifier Example) SELECT TOP 10 * FROM tblTest ORDER BY NEWID() 2016. 12. 6.
[MSSQL] 컬럼 추가,수정,삭제 하기 (Column Modify) 컬럼 추가,수정,삭제 하기 (Column Modify) -- 컬럼 추가ALTER TABLE [테이블명] ADD [컬럼명] [속성] -- 컬럼 수정ALTER TABLE [테이블명] ALTER COLUMN [컬럼명] [속성] -- 테이블명 수정 (내장 시스템 프로시져 sp_rename)sp_rename '[기존 테이블명]','[수정될 테이블명]' -- 컬럼명 수정 (내장 시스템 프로시져 sp_rename)sp_rename '[기존 테이블명].[기존컬럼명]' , '[수정될 컬럼명]' -- 컬럼 삭제ALTER TABLE [테이블명] DROP COLUMN [컬럼명] -----------------------------------------------Add, Modify, Delete Column -- ADD CO.. 2016. 11. 17.
[MSSQL] 다른 서버의 테이블 불러오기 [MSSQL] 다른 서버의 테이블 불러오기 다른 서버의 테이블 불러오기 (call the another server's table)SELECT * FROM [SERVER IP].[DB NAME].[dbo].[TABLE NAME] WHERE [CONDITION] Example)SELECT * FROM [192.168.0.1].[dbTest].[dbo].[tblTest] WHERE flag = 'Y' *서버간 연결이 선행작업으로 설정되어있어야 함.Linked server is first step before execute this query. 2016. 11. 14.
[MSSQL] DROP문 사용하기 --테이블 삭제DROP TABLE [TABLE NAME] Example)DROP TABLE tblTEST Result) 2016. 11. 9.
[MSSQL] DELETE문 사용하기 --데이터 삭제 (DELETE Data)DELETE FROM [TABLE NAME] WHERE [CONDITION] Example)DELETE FROM tblTEST WHERE secondColumn = '2nd2' and thirdColumn = 'UPTESTUP3' Result)before) after) 2016. 11. 9.
[MSSQL] UPDATE문 사용하기 --데이터 수정 (UPDATE data)UPDATE tblTEST SET [COLUMN NAME1] = '[VALUE]', [COLUMN NAME2] = '[VALUE]' WHERE [CONDITION] Example)UPDATE tblTEST SET firstColumn = 'UPTEST', thirdColumn = 'UPTESTUP' WHERE seq = '7' Result) Example)UPDATE tblTEST SET firstColumn = 'UPTEST2', thirdColumn = 'UPTESTUP2' WHERE seq in ('5','7') Result) Example)UPDATE tblTEST SET firstColumn = 'UPTEST3', thirdColumn = 'UPTESTUP.. 2016. 11. 8.
[MSSQL] INSERT문 사용하기 -- INSERT테이블에 레코드 삽입 --새 데이터 삽입 (INSERT New data)INSERT INTO [TABLE NAME] ([COLUMN NAME]) VALUES ([VALUE]) Example)INSERT INTO tblTEST (firstColumn, secondColumn, thirdColumn)VALUES ('123','456','789') Result) --초기값 NULL허용 할 경우 지정하지 않을 시 NULL로 입력 (If column allow NULL) Example)INSERT INTO tblTEST (firstColumn, secondColumn)VALUES ('999','888') Result) --데이터 복사 삽입 (INSERT New data using SELECT) E.. 2016. 11. 8.
[MSSQL] SELECT문 사용하기 [MSSQL] SELECT문 사용하기 MSSQL SELECT --전체 (SELECT ALL)SELECT * FROM [TABLE NAME] Example)SELECT * FROM tblTEST Result) --특정 Column부르기 (SELECT specific column)SELECT [COLUMN NAME] FROM [TABLE NAME] Example)SELECT firstColumn FROM tblTEST Result) --2개 이상의 특정 Column부르기 (SELECT more than 2 columns)SELECT [COLUMN NAME 1],[COLUMN NAME 2] FROM [TABLE NAME] Example)SELECT firstColumn, thirdColumn FROM tblT.. 2016. 11. 7.
[MSSQL] CREATE문 사용하기 --테이블 생성 (How To Create table) Example)CREATE TABLE tblTEST([seq] [bigint] IDENTITY(1,1) NOT NULL, --1씩 증가, NULL불가능[firstColumn] [nvarchar](50) NULL,[SecondColumn] [nvarchar](50) NULL,[ThirdColumn] [nvarchar](50) NULL) Result) 2016. 11. 7.
[MSSQL] SQL이란 *SQL(Structured Query Language)관계형 DBMS에서 가장 널리 사용되고 있는 질의 언어로 SQL-92 언어 표준을 따름웹 사이트나 시스템 운영시 필요한 대량의 데이터들을 저장 할 수 있음 *SQL 구성DDL (Data Definition Language)데이터베이스 스키마 생성, 삭제 수정을 위한 언어DML (Data Manipulation Language)데이터의 삽입, 삭제 수정 그리고 검색 등 테이블 데이터를 조작하기 위한 언어DCL (Data Control Language)데이터베이스 접근 권한에 대한 설정을 처리하기 위한 언어 2016. 10. 19.