반응형

①SQLPLUS /NOLOG

②CONN /AS SYSDBA

③ALTER  TABLESPACE TS_TABLESPACE_NAME ADD DATAFILE 'D:\ORADATA\TBLDATA_FILENAME.DBF' SIZE 200M;

④ALTER DATABASE DATAFILE 'D:\ORADATA\TBLDATA_FILENAME.DBF' AUTOEXTEND ON NEXT 200M MAXSIZE 20000M;


보통 하드디스크가 여유가 있으면 오라클이 테이블스페이스를 자동으로 잡아주지만 하드디스크의 용량이 꽉차면 테이블 스페이스

를 따로 잡아줘야한다.(하드를 추가하거나 여유공간이 있는 다른 디스크에 추가한다)

이런경우에 1)~4)의 절차대로 실행해준다. 참고로 1),2)는 sqlplus에 sysdba계정으로 접근하는 절차이므로 상황에 맞게 접속하면된다.

반응형

select   substr(a.tablespace_name,1,30) tablespace ,

         round(sum(a.total1)/1024/1024,1) "전체" ,

         round(sum(a.total1)/1024/1024,1)-round(sum(a.sum1)/1024/1024,1) "사용량MB" ,

         round(sum(a.sum1)/1024/1024,1) "여유"

from

         (select   tablespace_name,0 total1,sum(bytes) sum1,max(bytes) MAXB,count(bytes) cnt

          from     dba_free_space

          group by tablespace_name

          union

          select   tablespace_name,sum(bytes) total1,0,0,0

          from     dba_data_files

          group by tablespace_name) a

group by a.tablespace_name

order by tablespace;



출처 : http://kwon8999.tistory.com/3

반응형

실행시킬 SQL문을 C:\SpoolSelect.sql로 저장 한다.

---- SpoolSelect.sql  시작 ---

SELECT empno, sal, ename, to_char(hiredate, 'RRRR-MM-DD') FROM emp;

SELECT deptno, dname FROM dept;

---- SpoolSelect.sql  끝 ---



C:\> SQLPLUS scott/tiger 


-- header가 display되지 않고 데이터만 display 

SQL> SET HEADING OFF



-- pagesize의 default는 14이며 그대로 하면 

-- 14줄마다 1줄씩 공백이  생기므로 

-- 그런 현상을 방지하기 위해 크게 지정한다. 

SQL> SET PAGESIZE 10000     



-- linesize도 record 길이만큼 지정하여 

-- 아래로 구분되지 않도록 합니다.

SQL> SET LINESIZE  300        



-- 명령이 display되지 않도록 한다.

SQL> SET ECHO OFF



-- 조회 결과가 화면에 나오지 않도록 한다.  

SQL> SET TERM OFF



-- data가 들어가는 화일 이름을 지정 한다. 

SQL> SPOOL  C:\test.txt    



-- 스크립트 파일을 실행 시킨다. 

SQL> @C:\SpoolSelect.sql



SQL> SPOOL Off


-- test.txt file이 생성 되었는지 확인 해보자.




출처 : http://www.gurubee.net/lecture/1152

반응형

1. database가 복구할 pc에 생성되어있어야 한다.

2. 작업은 MySQL Command 콘솔에서 한다.

3. MySQL 로그인후

4. use databasename; 실행

    - 어떤 데이터베이스를 복구할 것인지 선택해야하니까.

5. source c:/folder/source_file.sql; 실행

    - 복구 명령 끝


아주 간단하다. 이걸 몰라서 한참을 해맸다.

반응형
UPDATE TAB1 SET 
EMPLOYEES = '20090801'
FROM TAB1 A
LEFT JOIN (
SELECT 
     TASK_MAIN_CODE
   , REG_DATE
   , TASK_SUB_CODE 
FROM TAB2
WHERE TASK_MAIN_CODE = '조건1' 
AND REG_DATE = '조건2'
AND ISNULL(DELETE_FLAG,'0') = '0'
GROUP BY TASK_MAIN_CODE, REG_DATE, TASK_SUB_CODE

) B
ON A.CODE = B.TASK_MAIN_CODE
AND A.REG_DATE = B.REG_DATE
AND A.SUB_CODE = B.TASK_SUB_CODE
 
WHERE A.CODE = '조건1'
AND A.REG_DATE = '조건2'
AND ISNULL(A.DELETE_FLAG,'0') = '0'
AND  ISNULL(B.TASK_MAIN_CODE,'-1') = -1

tab2가 tba1을 외부참조한상태에서  tab1은 tab2에 연결(외부참조한) 데이터가 없는 값만 update하려는 쿼리이다.
tab1와 tab2가 1:n의 관계이기 때문에 서브쿼리로 group by한상태에서 left join하였고 tab2의 TASK_MAIN_CODE 값이 없는
(isnull로 -1처리된) 결과값들만 update하도록 작성된 쿼리이다.
반응형
①VS.NET(asp.net)에서 오라클(SQLAllocHandle)에러 발생 by windows server 2003 프로그래밍  

오라클은 데이터베이스를 서비스하는 컴퓨터에는 반드시 클라이언트 프로그램이
설치 되어 있어야 한다. 1차적으로 SQLAllocHandle에러가 발생했을 경우에는
클라이언트프로그램의 설치가 정확히 이루어 졌는지 확인할 필요가 있다.
2차적으로 윈도우즈가 자체적으로 asp.net을 서비스하기 위해서는 오라클서비스에
접근해야 하는데 클라이언트가 설치되었다고 해서 자동으로 접근을 허락하지 않는다.
(-_-; 동일한 서버내에서 일어나는 event들인데도 말이지)
따라서 윈도우즈 상의 오라클설치 폴더에 iis계정관리자가 접근할 수 있도록 
허락해 주어야 한다. 『c:/oracle/oracle92』폴더에 설치되어있다고 가정할때(오라클9i디폴트
설치시 디렉토리임) oracle92폴더의 보안 속성을 확인하여 iis프로세스시작계정을 추가한다.
iis프로세스시작계정은 『iwam_사용자명』으로 생성되어 있다. 내컴퓨터가 abc라면
iis프로세스시작계정은 iwam_abc가 되니 찾아서 추가해주면 된다.
윈도우즈xp에서 보안설정이 보이지 않는 경우가 있고 별도의 설정법이 있지만 귀찮아서 패스...
※ 계정을 추가했지만 계속 에러가 발생한다면 reboot해주는 센스 발휘~



②asp.net 으로 오라클 접근시에 "DLL(oci.dll)을(를) 로드할 수 없습니다. 
에러발생시 오라클 루트폴더 C:\oracle\ora92에 IWAM_(iis관련계정)계정에 권한을 부여해야한다.
반응형
--MSSQL 2000
select top 10* from table_name
--MSSQL 2005
select top(10)* from  table_name

반응형
//기본 함수
select getdate()
//문자형으로 가져오기 ('20091231')
SELECT      CONVERT(varchar(8),getdate(),112) 

반응형
//MS SQL 2000
select
    tb.snum,
    ta. code,
    tc.user_name,
    ta.title,
    ta.contents,
    ta.filename,
    ta.filedata
from board01 as ta,
(
    select count(b.code) as snum, b.code
    from board01 as a,
    (
        select code from board01
    ) as b
    where a.code >= b.code
    group by b.code
) as tb,
info_users as tc
where ta.code = tb.code
and ta.writer = tc.user_id

//MS SQL 2005
select (Row_number() Over(Order By Refer desc, Step)) as aaa,* from t_board2


MS SQL 2000은 Row_number함수를 지원하지 않는다.
사용자가 함수를  직접 만들어서 사용하거나 서브쿼리를 만들어서 카운트를 지정한후 
직접 Row number를 뽑아내는 수 밖에 없다.

+ Recent posts