select * from INFORMATION_SCHEMA.columns

'database' 카테고리의 다른 글

mysql function 생성 오류  (0) 2018.01.26
오라클 database 버전확인  (0) 2015.12.08
mysql 트리거 생성시 function 생성 오류  (0) 2015.05.13
오라클 LISTAGG  (0) 2014.12.04
오라클 특수문자 제거  (0) 2014.12.02
Posted by 우주정복☆
,

fucntion 생성시 오류발생 - 

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its declaration and binary logging is enabled (you *might* want to use the less safe log_bin_trust_function_creators variable)


my.cnf 파일 mysqld 설정 확인

--log-bin-trust-function-creators=1 


설정파일 수정하면 재시작 해야하니 명령어 실행

mysql>SET GLOBAL log_bin_trust_function_creators = 1; 


//1=on을 의미하고 0은 off를 의미한다 

'database' 카테고리의 다른 글

mysql table, column 구조 확인  (0) 2020.01.09
오라클 database 버전확인  (0) 2015.12.08
mysql 트리거 생성시 function 생성 오류  (0) 2015.05.13
오라클 LISTAGG  (0) 2014.12.04
오라클 특수문자 제거  (0) 2014.12.02
Posted by 우주정복☆
,

SELECT * FROM v$version;



'database' 카테고리의 다른 글

mysql table, column 구조 확인  (0) 2020.01.09
mysql function 생성 오류  (0) 2018.01.26
mysql 트리거 생성시 function 생성 오류  (0) 2015.05.13
오라클 LISTAGG  (0) 2014.12.04
오라클 특수문자 제거  (0) 2014.12.02
Posted by 우주정복☆
,

function 만들 때 

ERROR 1418 (HY000): This function has none of DETERMINISTIC, NO SQL, 
or READS SQL DATA in its declaration and binary logging is enabled 
(you *might* want to use the less safe log_bin_trust_function_creators variable) 

오류발생!! 


해결방법

1. show global variables like 'log_bin_trust_function_creators';

명령어를 실행하여 "log_bin_trust_function_creators" 옵션이 "ON"인지 "OFF"인지를 확인한다.

"OFF" 이면 생성이 안됨!


2. SET GLOBAL log_bin_trust_function_creators = 1; 

명령어를 실행하면 "ON" 으로 바뀐다. (1=ON : 0=OFF)

다시 트리거를 생성하면 오류가 발생하지 않고 적용이 된다.


3. mysql 서버 재시작시 적용방법 - 

my.cnf 파일

[mysqld] 아래

log-bin-trust-function-creators=1

를 삽입한다.

'database' 카테고리의 다른 글

mysql function 생성 오류  (0) 2018.01.26
오라클 database 버전확인  (0) 2015.12.08
오라클 LISTAGG  (0) 2014.12.04
오라클 특수문자 제거  (0) 2014.12.02
Oracle ~> MsSQL 변환작업 두번째  (0) 2014.06.26
Posted by 우주정복☆
,

오라클 LISTAGG

database 2014. 12. 4. 11:36

LISTAGG (ORACLE 11G)

- 여러행의 값을 하나로 나타냄.


SELECT LISTAGG(COLUMN, ',') WITHIN 

              GROUP(ORDER BY COLUMN) AS NAME

FROM TABLE


EX)

기존 : A

   B

   C

   D


사용 : A,B,C,D

Posted by 우주정복☆
,

특수문자 제거

SELECT  FROM 

WHERE REGEXP_REPLACE('컬럼명', '[[:punct:]]', '')


JAVA에서 특수문자 제거

String str = "특수문자&^제거";

String match = "[^\uAC00-\uD7A3xfe0-9a-zA-Z\\s]"; //특수문자제거 정규식

if(str != null && str.equals("")){

str = str.replaceAll(match, "");

}


문자열+숫자 에서 숫자만 출력하기

TO_NUMBER(REGEXP_REPLACE('컬럼', '[^0-9]'))

'database' 카테고리의 다른 글

mysql 트리거 생성시 function 생성 오류  (0) 2015.05.13
오라클 LISTAGG  (0) 2014.12.04
Oracle ~> MsSQL 변환작업 두번째  (0) 2014.06.26
mySql, Oracle에서 msSql 함수 변환작업  (0) 2014.06.19
table data 복사 하기  (0) 2014.06.12
Posted by 우주정복☆
,

MsSQL에서의 페이징

row_number() 함수를 사용해서 구현했다.

SELECT 

userid, userName, apprid, approvalName

FROM (
  SELECT ROW_NUMBER() OVER(ORDER BY userid(PK) DESC ) rowsNum, 
  a.userid AS userid, a.userName AS userName, b.apprid AS apprid, b.app  rovalname AS approvalName 
  FROM users a, approval b
  WHERE a.userid = b.apprid
) AS paging

WHERE rowsNum BETWEEN 1 AND 10
ORDER BY userid DESC

msSql에서는 limit 속성을 사용할수 없기 때문에 이런형태의 페이징을 구현했다. 

OVER() 함수에는 ORDER BY 각 꼭 들어가야 하며 기본키가 정렬값이어야 한단다.


GROUP_CONCAT을 STUFF()로 변환
SELECT
b.apprid, STUFF(
(SELECT ', ' + sb.appruid+'/'+su.nname
FROM appr_person sb, users su
WHERE sb.apprid = b.apprid and (sb.apprflag = 'd' AND sb.appruid = su.userid)
FOR XML PATH('')), 1, 2 ,'' )
FROM appr_person b
WHERE b.apprflag = 'd'
GROUP BY b.apprid



'database' 카테고리의 다른 글

mysql 트리거 생성시 function 생성 오류  (0) 2015.05.13
오라클 LISTAGG  (0) 2014.12.04
오라클 특수문자 제거  (0) 2014.12.02
mySql, Oracle에서 msSql 함수 변환작업  (0) 2014.06.19
table data 복사 하기  (0) 2014.06.12
Posted by 우주정복☆
,

1. DATE_FORMAT ~> CONVERT로 변환

select convert(char(10), getdate(), 120)

convert(datatype(size), 변경대상, 변경할type)

날짜 변환시 변경할 type 종류  : 

120 : yyyy-MM-dd HH:mm:ss

112 : yyyyMMdd

108 : HH:mm:ss

110 : MM-dd-yyyy

113 : dd MM yyyy HH:mm:ss:sss

이정도만 알고 있으면 큰문제는 없을것 같다. 

substring 써가면서 하면 된다.

getdate()함수는 oracle에서 now()이다.


2. DATE_ADD ~> DATEADD로 변환

select(day, +1, getdate())


3. LPAD ~> REPLICATE로 변환

select replicate('0', 2-LEN(day)) + cast( day AS VARCHAR)


4.DATEPART

select datepart(wk, getdate() )

날짜의 특징 부분을 나타낸다.

(DATEPART, DATEADD, DATEDIFF 공통)

Year : yy, yyyy

Quarter : qq, q

Month : mm, m

DayofYear : dy, y

Day : dd, d

Week : wk, ww

Weekday : dw, w

Hour : Hh

Minute : mi, n

Second : ss, s

Millisecond : Ms


5. CONCAT이 없다.

str() + ' 문자열 ' 를 이용하는 방법이 있고

대한 +'~'+ 민국 이렇게 +'문자열'+ "+"를 이용해도 된다


6. INSTR --> CHARINDEX

mysql : INSTR('문자열', '자')

mssql : CHARINDEX('자', '문자열') / 숫자에 음수가 들어가면 오류가 발생, 절대 양수변환 ABS()를 사용해서 해결


'database' 카테고리의 다른 글

mysql 트리거 생성시 function 생성 오류  (0) 2015.05.13
오라클 LISTAGG  (0) 2014.12.04
오라클 특수문자 제거  (0) 2014.12.02
Oracle ~> MsSQL 변환작업 두번째  (0) 2014.06.26
table data 복사 하기  (0) 2014.06.12
Posted by 우주정복☆
,

table data 복사 하기

database 2014. 6. 12. 12:04

insert into 테이블 이름

select * from 가져올 테이블 이름 ;


* 물론 같은 database일때!

'database' 카테고리의 다른 글

mysql 트리거 생성시 function 생성 오류  (0) 2015.05.13
오라클 LISTAGG  (0) 2014.12.04
오라클 특수문자 제거  (0) 2014.12.02
Oracle ~> MsSQL 변환작업 두번째  (0) 2014.06.26
mySql, Oracle에서 msSql 함수 변환작업  (0) 2014.06.19
Posted by 우주정복☆
,