Table Value Constructor
·
Oracle/SQL
개요Oracle 23c에 Table Value Constructor(이후 TVC) 기능이 추가되었습니다.The database's SQL engine now supports a VALUES clause for many types of statements. This new clause allows for materializing rows of data on the fly by specifying them using the new syntax without relying on existing tables. Oracle supports the VALUES clause for the SELECT, INSERT, and MERGE statements. The introduction of the new VALUES..
UPDATE 문의 RETURNING INTO 절 개선
·
Oracle/PLSQL
Oracle 23c부터 UPDATE 문의 RETURNING INTO 절에 OLD 키워드와 NEW 키워드를 사용하여 갱신 전후 값을 반환할 수 있습니다.The RETURNING INTO clause for INSERT, UPDATE, and DELETE statements are enhanced to report old and new values affected by the respective statement. This allows developers to use the same logic for each of these DML types to obtain values pre- and post-statement execution. Old and new values are valid only for UPD..
SQL 도메인
·
Oracle/Administration
개요Oracle 23c에 SQL 도메인(이후 도메인) 기능이 추가되었습니다. 도메인은 데이터 타입, CHECK 제약조건, 표시 형식, 정렬 기준 등을 정의할 수 있는 오브젝트로 싱글 칼럼 도메인, 멀티 칼럼 도메인, Flexible 도메인으로 구분됩니다.A SQL domain is a dictionary object that belongs to a schema and encapsulates a set of optional properties and constraints for common values, such as credit card numbers or email addresses. After you define a SQL domain, you can define table columns to be ..
BOOLEAN 타입
·
Oracle/SQL
Oracle 23c부터 SQL 문에 BOOLEAN 타입을 사용할 수 있습니다.Oracle Database now supports the ISO SQL standard-compliant BOOLEAN data type. This enables you to store TRUE and FALSE values in tables and use BOOLEAN expressions in SQL statements. The BOOLEAN data type standardizes the storage of Yes and No values and makes it easier to migrate to Oracle Database. 테스트를 위해 아래와 같이 c2 칼럼이 BOOLEAN 타입인 테이블을 생성하겠습니다.-- 1-..
FROM 절 미사용 SELECT 문
·
Oracle/SQL
Oracle 23c부터 FROM 절을 사용하지 않은 SELECT 문을 사용할 수 있습니다.You can now run SELECT expression-only queries without a FROM clause. This new feature improves SQL code portability and ease of use for developers. 아래 SELECT 문은 FROM 절을 사용하지 않습니다.  23.2 버전은 결과가 반환되지만, 19.3 버전은 에러가 발생합니다. 1-1번 쿼리의 실행 계획에서 내부적으로 DUAL 테이블이 사용되는 것을 알 수 있습니다.-- 1-1: 23.2SELECT 1 AS c1;C1-- 11개의 행이 선택되었습니다.----------------------------..
GROUP BY 절과 HAVING 절 표현식 개선
·
Oracle/SQL
개요Oracle 23c부터 GROUP BY 절과 HAVING 절에 칼럼 앨리어스를 사용하거나, GROUP BY 절에 위치 표현식을 사용할 수 있습니다.You can now use column alias or SELECT item position in GROUP BY, GROUP BY CUBE, GROUP BY ROLLUP, and GROUP BY GROUPING SETS clauses. Additionally, the HAVING clause supports column aliases. These enhancements make it easier to write GROUP BY and HAVING clauses. It can make SQL queries much more readable and main..
날짜 값에 CEIL, FLOOR 함수 사용
·
Oracle/SQL
Oracle 23c부터 DATE, TIMESTAMP, INTERVAL 등의 날짜 값에 CEIL, FLOOR 함수를 사용할 수 있습니다.You can now pass DATE, TIMESTAMP, and INTERVAL values to the CEIL and FLOOR functions. These functions include an optional second argument to specify a rounding unit. You can also pass INTERVAL values to ROUND and TRUNC functions. These functions make it easy to find the upper and lower bounds for date and time values for..
단순 CASE 문 평가식 개선
·
Oracle/PLSQL
Oracle 23c부터 단순(simple) CASE 문과 CASE 표현식에 단항 조건(dangling predicates)을 사용할 수 있습니다.The CASE statement is extended in PL/SQL to be consistent with the updated definitions of CASE expressions and CASE statements in the SQL:2003 Standard [ISO03a, ISO03b]. Dangling predicates allow tests other than equality to be performed in simple CASE operations. Multiple choices in WHEN clauses allow CASE operatio..
UPDATE 문에 대한 DEFAULT ON NULL 절
·
Oracle/Administration
Oracle 23c부터 UPDATE 문에 대해서도 DEFAULT ON NULL 속성을 지정할 수 있습니다. 참고로 INSERT 문에 대한 DEFAULT ON NULL 속성은 12.1 버전에 추가되었습니다.You can define columns as DEFAULT ON NULL for update operations, which was previously only possible for insert operations. Columns specified as DEFAULT ON NULL are automatically updated to the specific default value when an update operation tries to update a value to NULL. This featu..
Automatic SQL Transpiler
·
Oracle/Performance
Oracle 23c에 Automatic SQL Transpiler 기능이 추가되었습니다. 해당 기능은 단순 표현식을 반환하는 PL/SQL 함수를 SQL 표현식으로 변환해 SQL과 PL/SQL 간의 Context switching을 제거함으로써 성능을 개선합니다.PL/SQL functions within SQL statements are automatically converted (transpiled) into SQL expressions whenever possible. Transpiling PL/SQL functions into SQL statements can speed up overall execution time. 테스트를 위해 아래와 같이 테이블과 함수를 생성하겠습니다. f1 함수는 단순 표현식..
INTERVAL 값 집계
·
Oracle/SQL
Oracle 23c부터 INTERVAL 값에 SUM 함수와 AVG 함수를 사용할 수 있습니다.You can pass INTERVAL datatypes to the SUM and AVG aggregate and analytic functions. This enhancement makes it easier for developers to calculate totals and averages over INTERVAL values. 테스트를 위해 아래와 같이 테이블을 생성하겠습니다.-- 1DROP TABLE t1 PURGE;CREATE TABLE t1 (c1 INTERVAL DAY TO SECOND, c2 INTERVAL DAY TO SECOND);INSERT INTO t1 VALUES (INTERVAL '1'..
DB_DEVELOPER_ROLE 롤
·
Oracle/Administration
Oracle 23c에 개발자를 위한 DB_DEVELOPER_ROLE 롤이 추가되었습니다.The DB_DEVELOPER_ROLE role provides an application developer with all the necessary privileges to design, implement, debug, and deploy applications on Oracle databases. By using this role, administrators no longer have to guess which privileges may be necessary for application development. 아래 쿼리로 DB_DEVELOPER_ROLE 롤에 부여된 시스템 권한, 오브젝트 권한, 롤을 확인할 수 ..