Last active
June 7, 2023 09:52
-
-
Save forstie/0a8e785f487e55c67c991166afb5edb2 to your computer and use it in GitHub Desktop.
The request was to provide an easy to use and customize approach for finding files within the IFS based upon generic names and including the date they were created.
This file contains 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
-- With this style of SQL, you can search the IFS by file name, or by creation date, or both! | |
-- In fact, it is simple to search by any criteria you'd like to use. | |
-- | |
-- Find files within the IFS where: | |
-- --> The name starts with "P" | |
-- --> The file suffix is ".txt" | |
-- --> The file was created on January 10, 2022 | |
-- | |
-- | |
-- Note: Running the SQL in batch using RUNSQL will be the preferred approach if your IFS is huge. | |
-- | |
create or replace table ifssearch.results as | |
(with ifs_search (timeOfSearch, file_name, | |
PATH_NAME, OBJECT_TYPE, SYMBOLIC_LINK, ASP_NUMBER, | |
TEXT_DESCRIPTION, FILE_IDENTIFIER_NUMBER, GENERATION_IDENTIFIER, | |
FILE_SYSTEM_IDENTIFIER, FILE_IDENTIFIER, FILE_ACCESS, CREATE_TIMESTAMP, | |
ACCESS_TIMESTAMP, DATA_CHANGE_TIMESTAMP, OBJECT_CHANGE_TIMESTAMP, LAST_USED_TIMESTAMP, | |
DAYS_USED_COUNT, LAST_RESET_TIMESTAMP, ALLOCATED_SIZE, DATA_SIZE, "CCSID", CODE_PAGE, | |
EXTENDED_ATTRIBUTE_COUNT, CRITICAL_EXTENDED_ATTRIBUTE_COUNT, EXTENDED_ATTRIBUTE_SIZE, | |
HARD_LINK_COUNT, OBJECT_READ_ONLY, OBJECT_HIDDEN, TEMPORARY_OBJECT, SYSTEM_FILE, | |
SYSTEM_USAGE, DEVICE_SPECIAL_FILE, OBJECT_OWNER, USER_ID_NUMBER, PRIMARY_GROUP, | |
GROUP_ID_NUMBER, AUTHORIZATION_LIST, SET_EFFECTIVE_USER_ID, SET_EFFECTIVE_GROUP_ID, | |
AUTHORITY_COLLECTION_VALUE, OBJECT_AUDIT, OBJECT_AUDIT_CREATE, JOURNALED, | |
JOURNAL_LIBRARY, JOURNAL_NAME, JOURNAL_BEFORE_IMAGE, JOURNAL_AFTER_IMAGE, | |
JOURNAL_IDENTIFIER, JOURNAL_START_TIMESTAMP, JOURNAL_OPTIONAL_ENTRIES, | |
JOURNAL_SUBTREE, PARTIAL_TRANSACTION, APPLY_STARTING_RECEIVER_LIBRARY, | |
APPLY_STARTING_RECEIVER, APPLY_STARTING_RECEIVER_ASP, OBJECT_SIGNED, | |
SYSTEM_TRUSTED_SOURCE, MULTIPLE_SIGNATURES, OBJECT_DOMAIN, BLOCK_SIZE, | |
AUX_STORAGE_ALLOCATION, AUX_STORAGE_OVERFLOW, MAIN_STORAGE_ALLOCATION, STORAGE_FREED, | |
STORED_LOCAL, VIRTUAL_DISK_STORAGE, DIRECTORY_FORMAT, STREAM_FILE_FORMAT, | |
UDFS_FILE_FORMAT, UDFS_PREFERRED_STORAGE, UDFS_TEMPORARY_OBJECT, | |
CASE_SENSITIVE_FILE_SYSTEM, RESTRICT_RENAME_AND_UNLINK, PC_ARCHIVE, SYSTEM_ARCHIVE, | |
ALLOW_SAVE, SYSTEM_RESTRICT_SAVE, INHERIT_ALLOW_CHECKPOINT_WRITER, | |
ALLOW_WRITE_DURING_SAVE, EXIT_PROGRAM_SCAN, EXIT_PROGRAM_SCAN_DIRECTORY, SCAN_STATUS, | |
CCSID_SCAN, CCSID_SCAN_SUCCESS, SCAN_SIGNATURES_DIFFERENT, BINARY_SCAN, CHECKED_OUT, | |
CHECKED_OUT_TIMESTAMP, CHECKED_OUT_USER) as ( | |
select current timestamp, | |
rtrim( | |
substr(path_name, locate_in_string(path_name, '/', -1) + 1, length(path_name)) | |
), | |
PATH_NAME, OBJECT_TYPE, SYMBOLIC_LINK, ASP_NUMBER, TEXT_DESCRIPTION, | |
FILE_IDENTIFIER_NUMBER, GENERATION_IDENTIFIER, FILE_SYSTEM_IDENTIFIER, | |
FILE_IDENTIFIER, FILE_ACCESS, CREATE_TIMESTAMP, ACCESS_TIMESTAMP, | |
DATA_CHANGE_TIMESTAMP, OBJECT_CHANGE_TIMESTAMP, LAST_USED_TIMESTAMP, | |
DAYS_USED_COUNT, LAST_RESET_TIMESTAMP, ALLOCATED_SIZE, DATA_SIZE, "CCSID", | |
CODE_PAGE, EXTENDED_ATTRIBUTE_COUNT, CRITICAL_EXTENDED_ATTRIBUTE_COUNT, | |
EXTENDED_ATTRIBUTE_SIZE, HARD_LINK_COUNT, OBJECT_READ_ONLY, OBJECT_HIDDEN, | |
TEMPORARY_OBJECT, SYSTEM_FILE, SYSTEM_USAGE, DEVICE_SPECIAL_FILE, OBJECT_OWNER, | |
USER_ID_NUMBER, PRIMARY_GROUP, GROUP_ID_NUMBER, AUTHORIZATION_LIST, | |
SET_EFFECTIVE_USER_ID, SET_EFFECTIVE_GROUP_ID, AUTHORITY_COLLECTION_VALUE, | |
OBJECT_AUDIT, OBJECT_AUDIT_CREATE, JOURNALED, JOURNAL_LIBRARY, JOURNAL_NAME, | |
JOURNAL_BEFORE_IMAGE, JOURNAL_AFTER_IMAGE, JOURNAL_IDENTIFIER, | |
JOURNAL_START_TIMESTAMP, JOURNAL_OPTIONAL_ENTRIES, JOURNAL_SUBTREE, | |
PARTIAL_TRANSACTION, APPLY_STARTING_RECEIVER_LIBRARY, APPLY_STARTING_RECEIVER, | |
APPLY_STARTING_RECEIVER_ASP, OBJECT_SIGNED, SYSTEM_TRUSTED_SOURCE, | |
MULTIPLE_SIGNATURES, OBJECT_DOMAIN, BLOCK_SIZE, AUX_STORAGE_ALLOCATION, | |
AUX_STORAGE_OVERFLOW, MAIN_STORAGE_ALLOCATION, STORAGE_FREED, STORED_LOCAL, | |
VIRTUAL_DISK_STORAGE, DIRECTORY_FORMAT, STREAM_FILE_FORMAT, UDFS_FILE_FORMAT, | |
UDFS_PREFERRED_STORAGE, UDFS_TEMPORARY_OBJECT, CASE_SENSITIVE_FILE_SYSTEM, | |
RESTRICT_RENAME_AND_UNLINK, PC_ARCHIVE, SYSTEM_ARCHIVE, ALLOW_SAVE, | |
SYSTEM_RESTRICT_SAVE, INHERIT_ALLOW_CHECKPOINT_WRITER, ALLOW_WRITE_DURING_SAVE, | |
EXIT_PROGRAM_SCAN, EXIT_PROGRAM_SCAN_DIRECTORY, SCAN_STATUS, CCSID_SCAN, | |
CCSID_SCAN_SUCCESS, SCAN_SIGNATURES_DIFFERENT, BINARY_SCAN, CHECKED_OUT, | |
CHECKED_OUT_TIMESTAMP, CHECKED_OUT_USER | |
from table ( | |
qsys2.ifs_object_statistics( | |
start_path_name => '/', subtree_directories => 'YES', | |
object_type_list => '*ALLDIR *ALLSTMF *NOQSYS', ignore_errors => 'YES') | |
) | |
) | |
select * | |
from ifs_search | |
where file_name like 'P%.txt' and | |
date(CREATE_TIMESTAMP) = date('01/10/2022')) | |
with data | |
on replace delete rows; | |
stop; | |
select * from ifssearch.results; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment