Untitled

 avatar
unknown
plain_text
a month ago
1.1 kB
4
Indexable
def addAPMpkg(pkgDetails):
    pkgName = getAPMLookupPKG(pkgDetails[2].lower())
    newParentName = pkgDetails[0].lower()
    newColName = getNewParentColumn(pkgDetails[1].lower())
    scr=f'CREATE OR REPLACE PACKAGE {pkgName}\nAS\nPROCEDURE check_ri\n(\np_{newColName} {newParentName}.{newColName}%TYPE\n);\nEND {pkgName};\n/\n\n'
    scr=f'{scr}CREATE OR REPLACE PACKAGE BODY {pkgName}\nAS\nPROCEDURE check_ri\n(\np_{newColName} {newParentName}.{newColName}%TYPE\n)\nAS\nv_{newColName} {newParentName}.{newColName}%TYPE;\nBEGIN\nIF (p_{newColName} IS NOT NULL) THEN\nBEGIN\nSELECT {newColName} INTO v_{newColName} FROM syn_account WHERE {newColName} = p_{newColName};\nEXCEPTION\n  WHEN no_data_found THEN\n'
    scr=f'{scr} RAISE_APPLICATION_ERROR(-20999, \'Primary key value  \'|| p_{newColName} ||\' not found!\');\nEND;\nEND IF;\nEND check_RI;\nEND {pkgName};' 
    pkgAPMsql=f'{APM_directory}/{pkgName}.sql'; addAlterSession(pkgAPMsql, 'APM')
    printf(f'Creating PKG file for {pkgName}')
    sql2script(pkgAPMsql,scr)
    return pkgAPMsql,pkgName
Leave a Comment