0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Oracle CREATE SEQUENCE 文取得

Last updated at Posted at 2018-03-01
get_ddl_sequences.sql
-- #!/bin/sh
-- #@(#) \$Id get_ddl_sequences.sh
-- #
-- # su - oracle
-- # export ORACLE_SID=xxxx
-- # export ORACLE_HOME=/usr/app/oracle/product/12.1.0
-- #
-- #export NLS_LANG=JAPANESE_JAPAN.AL32UTF8
-- ${ORACLE_HOME}/bin/sqlplus / as sysdba << EOF
--
--  CREATE SEQUENCE 文取得
--
--    SEQUENCEはROLLBACKしても元に戻らないし、またCACHEで複数の連番を一時的に
--    メモリに持つ都合、元のSTART WITHがそのまま保障されるとは限らない。
--
--  history
--    2018/08/05  CONST.LF → CONST.NL
--
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET LINESIZE 80
orySET PAGESIZE 5000
SET TAB OFF
SET TERMOUT OFF
SET TRIMSPOOL ON
-- SPOOL pass includes CONNECT_IDENTIFIER, USER_NAME and SYSDATE
COLUMN USER_NAME    NEW_VALUE USER_NAME
COLUMN SYSTEM_DATE  NEW_VALUE SYSTEM_DATE
SELECT USER || '_' AS USER_NAME
     , TO_CHAR(SYSDATE, 'YYYYMMDD_HH24MISS') AS SYSTEM_DATE
FROM DUAL ;
SPOOL get_ddl_sequences_&&_CONNECT_IDENTIFIER._&&USER_NAME&&SYSTEM_DATE..sql
-- Windows ↑,  UNIX/Linux では ↓ を有効に
-- SPOOL get_ddl_sequences_\&&_CONNECT_IDENTIFIER._\&&USER_NAME\&&SYSTEM_DATE..sql
COLUMN CREATE_SEQUENCE  FORMAT A80
-- CREATE SEQUENCE文
SELECT  -- https://docs.oracle.com/cd/E57425_01/121/SQLRF/statements_6017.htm#i2067093  SQL language reference
    'CREATE SEQUENCE ' || US.SEQUENCE_OWNER || '.' || US.SEQUENCE_NAME || CONST.NL
 || 'INCREMENT BY '    || TO_CHAR(US.INCREMENT_BY) || CONST.NL
 || 'START WITH '      || TO_CHAR(US.LAST_NUMBER)  || CONST.NL
 || 'MAXVALUE '        || TO_CHAR(US.MAX_VALUE)    || CONST.NL
 || 'MINVALUE '        || TO_CHAR(US.MIN_VALUE)    || CONST.NL
 || DECODE(US.CYCLE_FLAG, 'Y', 'CYCLE', 'NOCYCLE') || CONST.NL
 || DECODE(US.CACHE_SIZE, 0, 'NOCACHE', 'CACHE ' || TO_CHAR(US.CACHE_SIZE)) || CONST.NL
 || DECODE(US.ORDER_FLAG, 'Y', 'ORDER', 'NOORDER') || ' ;' AS CREATE_SEQUENCE
FROM(
    SELECT COLUMN_VALUE AS OWNER FROM TABLE(PKG_USERS_SCHEMA.GET_USERS_SCHEMA)  -- ユーザーが作成したスキーマのみ
    ) MS
INNER JOIN DBA_SEQUENCES US  -- https://docs.oracle.com/cd/E57425_01/121/REFRN/GUID-5867804F-1339-4CB6-9A56-6B6DCECB61BB.htm  reference
ON  US.SEQUENCE_OWNER = MS.OWNER
ORDER BY
    US.SEQUENCE_OWNER
  , US.SEQUENCE_NAME ;
SPOOL OFF
COLUMN CREATE_SEQUENCE  CLEAR
SET ECHO ON
SET FEEDBACK ON
SET HEADING ON
SET LINESIZE 80
SET TERMOUT ON
-- exit
-- EOF
-- #export NLS_LANG=en_US
-- # ---------------------- End of get_ddl_sequences.sh ------------------------------

参照
Oracle 定数
Oracle 純粋にユーザー側のスキーマのみを取得

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?