2013. 7. 18. 11:08

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2012. 11. 7. 11:23

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

Oracle/DB22012. 11. 7. 11:03
http://www-03.ibm.com/systems/power/software/i/access/windows_sp.html





http://www-03.ibm.com/systems/power/software/i/access/windows_sp.html
Posted by Julyus
Oracle/DB22012. 11. 4. 09:03


[DB2]
http://translate.google.co.kr/translate?hl=ko&sl=en&tl=ko&u=http%3A%2F%2Fwww.dbforums.com%2Fdb2%2F1202593-check-numeric-db2-sql.html&anno=2
http://www.dbforums.com/db2/1202593-check-numeric-db2-sql.html
  ------------------------------ Commands Entered ------------------------------
 SELECT polnumber
      , CASE TRANSLATE(polnumber , '*' , ' 0123456789')
        WHEN '' THEN 'Valid.'
        ELSE 'Not valid.'
        END AS judge
  FROM (VALUES '1234'
              , '01234'
              , '012 34'
              , '012abc'
              , '2325128192'
              , ' 01234'
              , '01234 '
              , ' 01234 '
        ) policy(polnumber)
 ;
 ------------------------------------------------------------------------------

 POLNUMBER JUDGE     
 ---------- ----------
 1234 Valid.    
 01234 Valid.    
 012 34 Not valid.
 012abc Not valid.
 2325128192 Valid.    
   01234 Not valid.
 01234 Not valid.
  01234 Not valid.

   8 record(s) selected. 








http://blog.yahoo.com/_2ZBAUZR4EMVWRSQDNTHFMSNYEA/articles/174517

 



select LTRIM(TRANSLATE(컬럼명, TRANSLATE(컬럼명,'X0123456789','X'),' ')) from 테이블



select translate(str, translate(str, '.1234567890','A'), '1') 
from (
select 'C1.12.53A.a7.고b4 뮻 033 ' str from dual
)



select 
translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') 
from IBQM_CELLDB_SITE
order by

select translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') FROM IBQM_CELLDB_SITE 
order by substr( translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') ,1,1),INSTR( translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') ,'.',-1),to_number(substr( translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') ,INSTR(SITENAME,'.',-1)+1));


substr( translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') ,1,1),INSTR( translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') ,'.',-1),to_number(substr( translate(SITENAME, translate(SITENAME, '1234567890','A'), '1') ,INSTR(SITENAME,'.',-1)+1))





http://webjoy.kr/259

오늘은 SQL 스크립트로 숫자만 뽑아내는 함수를 만들고 실행해보자

맨 아래의 사용자정의함수를 먼저 만들고 아래의 select 구문들을 실행해보면 문자는 빠지고 숫자만 나오게 됨을 알 수 있다.

select dbo.udf_findallnumbers ('12sfg34')
--results
--1234
select dbo.udf_findallnumbers ('asas123')
--results
--123

select dbo.udf_findallnumbers ('assd123jdh556jdfd4j56j78')
--results
--12355645678

select dbo.udf_findallnumbers ('sadasd')
--results
--0

select dbo.udf_findallnumbers ('sadasds65')
--results
--65

 
create table findnumber_test (name varchar(100))
insert into findnumber_test select 'A2b4b2b5bb6bb8bb9'
insert into findnumber_test select 'MAK9974'
insert into findnumber_test select 'Eiko36DKoike'
 
select dbo.udf_findallnumbers (name) from findnumber_test
--results
--2425689
--9974
--36

사용자정의 함수 만드는 SQL 스크립트 소스는 다음과 같다.

Create function dbo.udf_findallnumbers (@inputstring varchar(100))
returns bigint
as
begin
--변수를 정의한다.
declare @count1 smallint
declare @len1 smallint
declare @word varchar(100)
declare @char1 char
--변수에 값을 할당한다.
set @word=''
set @count1=1
set @len1 = datalength(@inputstring)
 
        While @count1 <=@len1
        begin
        set @char1 =substring(@inputstring,@count1,1)
        if ascii(@char1) between 48 and 57 
        begin
        set @word=@word+substring(@inputstring,@count1,1)
        end
        set @count1=@count1+1
        end
return convert(bigint,@word)
 
end


출처 : korea.internet.com








Posted by Julyus
2012. 7. 3. 10:55

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2012. 4. 23. 11:04

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2012. 2. 15. 08:59

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

2011. 12. 12. 17:20

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

Oracle/DB22011. 12. 8. 11:29





/* 문법1 */
SELECT Query ~ FOR READ ONLY WITH UR;
SELECT Query ~ FOR FETCH ONLY WITH UR;

 

용도 설명
0. DB2는 기본적으로 아무 옵션없이 조회를 하면 먼저 테이블락을 걸고 조회후 테이블락을 푼다. 하지만 위의옵션을 붙히면 테이블락을 걸지 않고 조회한다.

1. Cursor를 Read-Only 상태로 연다.
2. 조회 테이블이 읽기전용이어서 커서가 UPDATE 및 DELETE문에서 참조될수 없음을 나타냅니다.

 

주의 사항
1. Pro*C 환경의 조회용 정적쿼리에 맨끝에 "FOR READ ONLY WITH UR"을 붙여 실행하면 에러가 발생한다.
발생하는 에러내용도 상관도 없는 부분에서 발생했다고 출력되어 삽질하기 딱좋다.
이때는 "WITH UR"로 변경한후 실행하면 정상실행 된다. 왜그런지는 모르겠다.

 

/* 문법2 */
SELECT Query ~ WITH UR;

 

용도 설명
0. 다른 transaction을 무시하고 작업수행을 해라.
1. 작업 단위(UOW)동안 읽은 행을 다른 응용프로그램 프로세스가 변경할 수 있습니다.
다른 응용프로그램 프로세스가 변경한 행을 비록 그 응용프로그램 프로세스가 변경사항을 확인하지 않더라도읽을 수 있습니다.
2. 트랜잭션 진행중인 원장을 조회할수 있음
3. select 구문은 with ur을 붙이는 것이 제일 빠르다. with ur을 사용함으로써 shared lock이 풀리는 듯한 효과가있다.
DB2에서는 lock이 escalate(단계적으로 확대되다)되므로 dead lock이 될수 있습니다.

※ 일반적으로 교착상태가 자중 걸리는 원장은 FOR READ ONLY WITH UR; 옵션을 붙여 조회하길 권장한다.
※ 삽입, 수정, 삭제 SQL문의 끝에 사용되는 WITH UR의 의미
삽입, 수정, 삭제 쿼리문에도 WITH UR 을 붙여 실행할수 있지만 큰 의미가 없습니다.
왜냐하면 DB2에서는 WITH UR 에 관계없이 삽입, 갱신, 삭제되는 원장의 모든 행에 독점잠금 (Lock)을 합니다.
따라서, 응용프로그램에서 변경된 행을 COMMIT, ROLLBACK 하기 전까진 다른 응용프로그램에 의해서는 절대로 변경할수(삽입, 수정, 삭제) 없고 대기하다가 커밋이나, 롤 백처리가 되면 그때 비로소 해당 원장을 변경합니다.
물론 다른 응용프로그램 프로세스에서 WITH UR을 사용하면 현재 응용프로그램에서 COMMIT, ROLLBACK 하기 전이라도 현재 수정되고 있는 상태로 조회할(읽을수는) 수는 있습니다.

 

※ IBM에서는 조회시에 가능한 WITH UR 이나 FOR READ ONLY WITH UR를 쓰는것을 권장합니다.
※ SELECT 이외의 절에 WITH UR을 사용하면 TRANSACTION이 엉킬수 있다.
※ DB2에서는 자주 액세스하는 테이블을 WITH UR을 주지 않고 조회하면 가끔씩 락이(?) 걸려 다른 사람들이조회를 할수 없을때도 있다.

[출처] [링크스크랩] WITH UR|작성자 고니

[본문링크] WITH UR | DB2
Posted by Julyus
Oracle/DB22011. 12. 8. 11:18



출처:http://ftp.postgresql.kr/?inc=read&aid=1087&criteria=db2&subcrit=qna&id=1141&limit=20&keyword=&page=33
그래서 해결책은
- 첫번째 : odbc 세팅 : auto commit  비활성화
  > 저는 이 방법을 사용했구요. as/400 시스템을 사용하는 경우 제공되는
     pc용 클라이언트 프로그램 중  odbc administration 설정 메뉴에서 
     odbc 셋업 화면 server 탭, 가장 밑에 있는 advanced 멘뉴 >
     commit mode => commit immediate (*none) 으로 설정했습니다.
- 두번째 : db2/400 (as/400 시스템) : 각 테이블 마다 저널 생성
Posted by Julyus