파라미터 같은 변수를 &P_VAL 로 하면 실행시 파라미터 값을 입력하는 창이 나온다.
DataBase
- DB 툴에서 변수 처리 2010.06.09
- 오라클 split 함수 2009.10.19
- 묻지마 조인 다른 방법.. 2009.04.05
- MySQL 설치 2007.01.19
DB 툴에서 변수 처리
파라미터 같은 변수를 &P_VAL 로 하면 실행시 파라미터 값을 입력하는 창이 나온다.
오라클 split 함수
출처 : http://blog.naver.com/addibuddi?Redirect=Log&logNo=12259012
-- TYPE 을 생성
create or replace type split_tbl as table of varchar2(32767);
/
show errors;
/*
테이블 형식으로 조회 됩니다.
*/
CREATE OR REPLACE FUNCTION split
(
p_list varchar2,
p_del varchar2 := ','
)
RETURN split_tbl PIPELINED
IS
l_idx pls_integer;
l_list VARCHAR2(32767) := p_list;
l_value VARCHAR2(32767);
BEGIN
LOOP
l_idx := INSTR(l_list, p_del);
IF l_idx > 0 then
PIPE ROW(SUBSTR(l_list, 1, l_idx-1));
l_list := SUBSTR(l_list, l_idx + LENGTH(p_del));
ELSE
IF LENGTH(l_list) > 0 THEN
PIPE ROW(l_list);
END IF;
EXIT;
END IF;
END LOOP;
RETURN;
END split;
/
show errors;
With this function, I can run a query like this:
SQL> select * from table(split('one,two,three,')); 또는 select * from table(split('one,two,three'));
one
two
three
묻지마 조인 다른 방법..
SELECT
...
이것을
SELECT
...
MySQL 설치
MySql 셋팅.
> 4.1 버전에서 한 내용.
1. Mysql 를 설치
2. mysql/bin/mysqld-nt --install 로 윈도우 서비스에 등록.
(mysql 제거: mysqld-nt --remove)
3. mysql 설치 폴더에
(1) 메모리가 1g 이상 -> my-huge.cnf
(2) 메모리 512mb 이상 -> my-large.cnf
를 my.ini 파일로 이름 변경한다.
4. my.ini 파일을 c:/winnt 폴더에 이동한다.(mysql 폴더에 my.ini 파일이 없게하자.)
5. my.ini 을 편집
:
[mysqld] 를 편집.
basedir=d:/server/mysql
datadir=d:/server/mysql/data
basedir 은 설치 폴더// datadir는 data폴더
6. 위도우 mysql 서비스를 재 시작한다.
: 콘솔에서
: mysql/net start mysql -- 시작
: mysql/net stop mysql -- 중지
: 으로도 서비스를 관리할 수 있다.
7. root 비번 변경.
D:\SERVER\mysql\bin>mysql -u root -p mysql
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 7 to server version: 4.0.21-nt-log
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> update user set password=password('root123') where user='root';
Query OK, 2 rows affected (0.09 sec)
Rows matched: 2 Changed: 2 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
8. database 와 user 생성
:mysql> create database samtech_db;
:mysql> grant select,insert,update,delete,create,drop,alter,index on samtech_db.*
to samtech@"localhost" identified by 'pass123';
9. databae 생성과 user 생성 후, mysql 서버에서 나옿후(exit;), database 접속
: mysql -u samtech -p samtech_db (로칼에서)
: mysql -h 111.222.0.2 -u samtechuser -p samtech_db (네트웍 접속)
--------------------------------------------------------------------------------------
+------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+------------+-------------+------+-----+---------+----------------+
| qna_id | int(8) | | PRI | NULL | auto_increment |
| title | varchar(40) | YES | | NULL | |
| content | text | YES | | NULL | |
| name | varchar(12) | YES | | NULL | |
| email | varchar(50) | YES | | NULL | |
| pwd | varchar(20) | YES | | NULL | |
| write_date | datetime | YES | | NULL | |
| read_cnt | int(8) | YES | | 0 | |
| group_id | int(8) | YES | | NULL | |
| group_loc | int(8) | YES | | NULL | |
| step | int(8) | YES | | NULL | |
+------------+-------------+------+-----+---------+----------------+
mysql> create table qnaboard(
-> qna_id int(8) not null auto_increment,
-> title varchar(40),
-> content text,
-> name varchar(12),
-> email varchar(50),
-> pwd varchar(20),
-> write_date datetime,
-> read_cnt int(8),
-> group_id int(8),
-> group_loc int(8),
-> step int(8),
-> primary key(qna_id)
-> );