반응형

Oracle 56

Oracle 12c에서 SQL 쿼리의 결과를 JSON으로 반환합니다.

Oracle 12c에서 SQL 쿼리의 결과를 JSON으로 반환합니다. 배경 Oracle에서 수천 개의 행을 가져와 SlickGrid에서 사용할 수 있도록 JSON으로 변환해야 합니다.현재 저는 PHP에서 행을 가져와서 iconv를 사용하여 ISO에서 UTF-8로 변환하고 json_encode를 사용하여 json으로 내보내는 중입니다.전체 작업은 DB 측에서 약 1초, JSON을 생성하는 데 약 5초가 소요됩니다.너무 길어요. 그 질문은 오라클 12c가 JSON을 지원한다고 읽었는데 정확히 필요한 것을 찾을 수가 없습니다. 표준 SQL 쿼리 결과를 json 형식으로 반환할 수 있는 방법이 있습니까? 다음과 유사한 질문을 하고 싶습니다. SELECT * from table AS JSON 다음과 유사한 유효한..

source 2023.06.10

Oracle: DBMS_UTILITY.EXEC_DDL_STATION 대 즉시 실행

Oracle: DBMS_UTILITY.EXEC_DDL_STATION 대 즉시 실행 어떤 것들이 다른가요?DBMS_UTILITY.EXEC_DDL_STATEMENT그리고.EXECUTE IMMEDIATE?기본적으로 PL/SQL에서 DDL 문을 실행하는 메커니즘을 제공하는 것과 같은 작업을 수행하지만 기본적으로 지원되지는 않습니다.메모리를 사용할 수 있다면 EXEC_DDL_STATION은 Oracle 7 버전의 DBMS_UTILITY 패키지에서 사용할 수 있는 반면 Native Dynamic SQL(EXECUTE ImmEDITY)은 8 버전에서만 도입되었습니다. 몇 가지 차이점이 있습니다.EXECUMENT Immediate는 주로 동적 SQL을 실행하는 것입니다(NDS 별칭에서 알 수 있음).DDL에 사용할 수..

source 2023.06.10

Oracle 고유 제약 조건 및 고유 인덱스

Oracle 고유 제약 조건 및 고유 인덱스 고유 제약(Oracle) 없이 고유 인덱스를 보유하는 목적이 무엇인지 누가 명확히 할 수 있습니까?예를들면, create table test22(id int, id1 int, tmp varchar(20)); create unique index idx_test22 on test22(id); insert into test22(id, id1, tmp) values (1, 2, 'aaa'); // ok insert into test22(id, id1, tmp) values (1, 2, 'aaa'); // fails, ORA-00001: unique // constraint (TEST.IDX_TEST22) violated 아직까지는 제약이 있는 것처럼 보인다.그렇지만 ..

source 2023.04.06

Oracle 스토어드 프로시저를 실행하는 방법

Oracle 스토어드 프로시저를 실행하는 방법 oracle 10g express 에디션을 사용하고 있습니다.DB 개발자에게 적합한 UI를 제공합니다.그러나 저장 프로시저를 실행하는 데 몇 가지 문제가 있습니다. 순서: create or replace procedure temp_proc is begin DBMS_OUTPUT.PUT_LINE('Test'); end 정상적으로 작성되었습니다.하지만 실행 시: execute temp_proc; ORA-00900: invalid SQL 문이 표시됩니다. 여기서 도움이 필요Executeis sql*plus 구문 ..먼저 전화를 걸어보세요.다음과 같이 끝납니다. begin temp_proc; end; (Jeffrey는 이것이 APEX에서는 동작하지 않는다고 말했지만,..

source 2023.04.01

여러 열을 여러 변수로 선택

여러 열을 여러 변수로 선택 여러 열이 있는 하나의 선택에서 각 열을 변수에 넣으려면 어떻게 해야 합니까? 다음과 같은 경우: --code here V_DATE1 T1.DATE1%TYPE; V_DATE2 T1.DATE2%TYPE; V_DATE3 T1.DATE3%TYPE; SELECT T1.DATE1 INTO V_DATE1, T1.DATE2 INTO V_DATE2, T1.DATE3 INTO V_DATE3 FROM T1 WHERE ID='X'; --code here 질의는 다음과 같습니다. SELECT T1.DATE1, T1.DATE2, T1.DATE3 INTO V_DATE1, V_DATE2, V_DATE3 FROM T1 WHERE ID='X'; SELECT V_DATE1 = T1.DATE1, V_DATE2..

source 2023.03.27

질의의 설명 계획을 어떻게 해석합니까?

질의의 설명 계획을 어떻게 해석합니까? SQL 문이 어떻게 실행되고 있는지 이해하려고 할 때 설명 계획을 살펴보는 것이 권장될 수 있습니다.설명 계획을 해석할 때 어떤 과정을 거쳐야 합니까?'아, 이거 잘 되는구나'와 '아, 그건 아니야'는 두각을 나타내야 할 부분이다.풀 테이블스캔이 나쁘고 인덱스 접근성이 좋다는 댓글을 볼 때마다 몸서리가 쳐집니다.전체 테이블 스캔, 인덱스 범위 스캔, 고속 전체 인덱스 스캔, 중첩 루프, 병합 조인, 해시 조인 등은 의미 있는 결론에 도달하기 위해 분석가가 이해해야 하는 단순한 액세스 메커니즘입니다. 풀스캔은 데이터 세그먼트(테이블 또는 테이블(서브) 파티션)의 블록의 대부분을 읽는 가장 효율적인 방법이며, 종종 성능 문제를 나타낼 수 있지만, 이는 쿼리의 목표를 달..

source 2023.03.17

ORA-28001:암호가 만료되었습니다.

ORA-28001:암호가 만료되었습니다. Oracle 데이터베이스 문제에 직면해 있습니다.데이터베이스를 열면 ORA-28001:암호가 만료되었습니다." 계정을 업데이트했습니다. sqlplus /nolog SQL> connect / as SYSDBA Connected. SQL> SELECT username, account_status FROM dba_users WHERE ACCOUNT_STATUS LIKE '%EXPIRED%'; SQL> ALTER USER system IDENTIFIED BY system; User altered. SQL> ALTER USER system ACCOUNT UNLOCK; User altered. SQL> ALTER PROFILE DEFAULT LIMIT PASSWORD_LIF..

source 2023.03.17

Oracle에서 모든 사용자 테이블/시퀀스 삭제

Oracle에서 모든 사용자 테이블/시퀀스 삭제 빌드 프로세스와 데이터베이스 진화의 일환으로 사용자의 모든 테이블과 시퀀스를 삭제하는 스크립트를 작성하려고 합니다.이 경우 허용된 것보다 더 많은 권한이 필요하므로 사용자를 다시 만들고 싶지 않습니다. 이 스크립트는 테이블/시퀀스를 삭제하는 절차를 작성하고 절차를 실행한 후 절차를 삭제합니다.sqlplus에서 파일을 실행하고 있습니다. drop.sql: create or replace procedure drop_all_cdi_tables is cur integer; begin cur:= dbms_sql.OPEN_CURSOR(); for t in (select table_name from user_tables) loop execute immediate 'dr..

source 2023.03.12

다른 테이블스페이스에서 오라클 덤프를 가져오는 방법

다른 테이블스페이스에서 오라클 덤프를 가져오는 방법 Oracle 덤프를 다른 테이블스페이스로 Import합니다. 사용자 A가 사용하는 테이블스페이스 A가 있습니다.이 사용자에 대한 DBA를 해지하고 연결 및 리소스를 부여했습니다.그럼 난 명령으로 모든 걸 버렸어 exp a/** owner=a file=oracledump.DMP log=log.log compress=y 이제 사용자 B가 사용하는 테이블스페이스 B로 덤프를 Import합니다.그래서 DBA가 아닌 연결 및 리소스에 대한 보조금을 지급했습니다.그런 다음 다음 가져오기를 실행했습니다. imp b/*** file=oracledump.DMP log=import.log from user=a touser=b 그 결과 오류가 많은 로그가 생성됩니다. IM..

source 2023.03.07

Oracle varchar 값에서 문자의 발생 횟수를 계산하는 방법은 무엇입니까?

Oracle varchar 값에서 문자의 발생 횟수를 계산하는 방법은 무엇입니까? 문자의 발생 횟수를 카운트하려면 어떻게 해야 합니까?-varchar2 문자열로요? 예: select XXX('123-345-566', '-') from dual; ---------------------------------------- 2 여기 있습니다. select length('123-345-566') - length(replace('123-345-566','-',null)) from dual; 기술적으로 체크하는 문자열에 카운트하는 문자만 포함되어 있는 경우 위의 쿼리는 NULL을 반환합니다.다음 쿼리는 모든 경우에 올바른 답변을 제공합니다. select coalesce(length('123-345-566') - le..

source 2023.03.07
반응형