Created
March 15, 2018 15:39
-
-
Save angoca/75b0c39ac2ae95fe732075d59e61bfc0 to your computer and use it in GitHub Desktop.
lookForDb2Object
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
OBJECT=$2 | |
if [[ -n ${OBJECT} ]] ; then | |
SCHEMA=$1 | |
else | |
OBJECT=$1 | |
fi | |
STMT="" | |
if [[ -n ${SCHEMA} ]] ; then | |
STMT="${STMT} SELECT 'TABLE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(T.TABSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(T.TABNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.TABLES T " | |
STMT="${STMT} WHERE T.TABSCHEMA LIKE '%${SCHEMA}%' " | |
STMT="${STMT} AND T.TABNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'FUNCTION' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(F.FUNCSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(F.FUNCNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.FUNCTIONS F " | |
STMT="${STMT} WHERE F.FUNCSCHEMA LIKE '%${SCHEMA}%' " | |
STMT="${STMT} AND F.FUNCNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'INDEX' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(I.INDSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(I.INDNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.INDEXES I " | |
STMT="${STMT} WHERE I.INDSCHEMA LIKE '%${SCHEMA}%' " | |
STMT="${STMT} AND I.INDNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'MODULE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(M.MODULESCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(M.MODULENAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.MODULES M " | |
STMT="${STMT} WHERE M.MODULESCHEMA LIKE '%${SCHEMA}%' " | |
STMT="${STMT} AND M.MODULENAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'PACKAGE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(P.PKGSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(P.PKGNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.PACKAGES P " | |
STMT="${STMT} WHERE P.PKGSCHEMA LIKE '%${SCHEMA}%' " | |
STMT="${STMT} AND P.PKGNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'PROCEDURE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(SP.PROCSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(SP.PROCNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.PROCEDURES SP " | |
STMT="${STMT} WHERE SP.PROCSCHEMA LIKE '%${SCHEMA}%' " | |
STMT="${STMT} AND SP.PROCNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'SEQUENCE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(S.SEQSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(S.SEQNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.SEQUENCES S " | |
STMT="${STMT} WHERE S.SEQSCHEMA LIKE '%${SCHEMA}%' " | |
STMT="${STMT} AND S.SEQNAME LIKE '%${OBJECT}%' " | |
else | |
STMT="${STMT} SELECT 'TABLE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(T.TABSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(T.TABNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.TABLES T " | |
STMT="${STMT} WHERE T.TABNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'FUNCTION' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(F.FUNCSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(F.FUNCNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.FUNCTIONS F " | |
STMT="${STMT} WHERE F.FUNCNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'INDEX' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(I.INDSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(I.INDNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.INDEXES I " | |
STMT="${STMT} WHERE I.INDNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'MODULE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(M.MODULESCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(M.MODULENAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.MODULES M " | |
STMT="${STMT} WHERE M.MODULENAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'PACKAGE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(P.PKGSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(P.PKGNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.PACKAGES P " | |
STMT="${STMT} WHERE P.PKGNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'PROCEDURE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(SP.PROCSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(SP.PROCNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.PROCEDURES SP " | |
STMT="${STMT} WHERE SP.PROCNAME LIKE '%${OBJECT}%' " | |
STMT="${STMT} UNION ALL " | |
STMT="${STMT} SELECT 'SEQUENCE' AS TYPE, " | |
STMT="${STMT} VARCHAR(SUBSTR(S.SEQSCHEMA, 1, 32), 32) AS SCHEMA, " | |
STMT="${STMT} VARCHAR(SUBSTR(S.SEQNAME, 1, 32), 32) AS NAME " | |
STMT="${STMT} FROM SYSCAT.SEQUENCES S " | |
STMT="${STMT} WHERE S.SEQNAME LIKE '%${OBJECT}%' " | |
fi | |
echo ${STMT} | |
db2 ${STMT} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment