파라미터 같은 변수를 &P_VAL 로 하면 실행시 파라미터 값을 입력하는 창이 나온다.

출처 : 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 
          ...
FROM    tbla a, (SELECT * FROM tblb WHERE ROWNUM <= 10) b

이것을

SELECT
          ...
FROM    tbla a, (SELECT * FROM dual CONNECT BY LEVEL <= 10) b

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)
    -> );

+ Recent posts