sqlacodegen
sqlacodegen copied to clipboard
Constraints Issues with Oracle
Things to check first
-
[X] I have searched the existing issues and didn't find my bug already reported there
-
[X] I have checked that my bug is still present in the latest release
Sqlacodegen version
master
SQLAlchemy version
2 latest
RDBMS vendor
Oracle
What happened?
on writing out contraints, issues occured with capitals, and also spaces in regards to the column name when writing out.
Database schema for reproducing the bug
CREATE TABLE "QCTL"."COMPANIES" ( "CMP_AUTO_KEY" NUMBER NOT NULL ENABLE, "CUR_AUTO_KEY" NUMBER, "SVC_AUTO_KEY" NUMBER, "TMC_AUTO_KEY" NUMBER, "TXT_AUTO_KEY" NUMBER, "CLC_AUTO_KEY" NUMBER, "FPC_AUTO_KEY" NUMBER, "COMPANY_CODE" VARCHAR2(10 BYTE) NOT NULL ENABLE, "SITE_CODE" VARCHAR2(10 BYTE), "ATTENTION" VARCHAR2(35 BYTE), "ADDRESS1" VARCHAR2(35 BYTE), "ADDRESS2" VARCHAR2(35 BYTE), "ADDRESS3" VARCHAR2(35 BYTE), "ALT_PHONE_NUMBER" VARCHAR2(20 BYTE), "CITY" VARCHAR2(35 BYTE), "COMPANY_ABBREV" VARCHAR2(12 BYTE) NOT NULL ENABLE, "COMPANY_NAME" VARCHAR2(50 BYTE) NOT NULL ENABLE, "CONTACT_NAME" VARCHAR2(50 BYTE), "COUNTRY" VARCHAR2(35 BYTE), "CURRENT_BALANCE" NUMBER, "COMPANY_BRIDGE_DATE" DATE, "CUSTOMER_FLAG" CHAR(1 BYTE), "DEPARTMENT" VARCHAR2(35 BYTE), "DISCOUNT" NUMBER, "FAX_NUMBER" VARCHAR2(20 BYTE), "FAX_BROADCAST_FLAG" CHAR(1 BYTE), "INVC_DOC_STYLE" VARCHAR2(15 BYTE), "LAST_SALE_DATE" DATE, "MAIL_MERGE_FLAG" CHAR(1 BYTE), "MAX_CREDIT" NUMBER, "MISCELLANEOUS" VARCHAR2(20 BYTE), "NOTES" CLOB DEFAULT empty_clob(), "PHONE_NUMBER" VARCHAR2(20 BYTE), "PHONE_STRIPPED" VARCHAR2(20 BYTE), "PO_DOC_STYLE" VARCHAR2(15 BYTE), "RESALE_NUMBER" VARCHAR2(20 BYTE), "SHIP_COUNTRY" VARCHAR2(35 BYTE), "SHIP_CITY" VARCHAR2(35 BYTE), "SHIP_STATE" VARCHAR2(3 BYTE), "SHIP_ADDRESS1" VARCHAR2(35 BYTE), "SHIP_ADDRESS2" VARCHAR2(35 BYTE), "SHIP_ADDRESS3" VARCHAR2(35 BYTE), "SHIP_ZIP_CODE" VARCHAR2(10 BYTE), "STATE" VARCHAR2(3 BYTE), "SUPPLIER_ID" VARCHAR2(8 BYTE), "VENDOR_FLAG" CHAR(1 BYTE), "VENDOR_BRIDGE_DATE" DATE, "YTD_SALES" NUMBER, "ZIP_CODE" VARCHAR2(10 BYTE), "CV_UDF_001" CHAR(1 BYTE), "CV_UDF_002" CHAR(1 BYTE), "CV_UDF_003" CHAR(1 BYTE), "CV_UDF_004" CHAR(1 BYTE), "CV_UDF_005" CHAR(1 BYTE), "CV_UDF_006" CHAR(1 BYTE), "CV_UDF_007" CHAR(1 BYTE), "CV_UDF_008" CHAR(1 BYTE), "CV_UDF_009" CHAR(1 BYTE), "CV_UDF_010" CHAR(1 BYTE), "CV_UDF_011" VARCHAR2(40 BYTE), "CV_UDF_012" VARCHAR2(40 BYTE), "CV_UDF_013" VARCHAR2(40 BYTE), "CV_UDF_014" VARCHAR2(40 BYTE), "CV_UDF_015" VARCHAR2(40 BYTE), "COMPANY_NAME_UPPER" VARCHAR2(50 BYTE), "COMPANY_CODE_UPPER" VARCHAR2(10 BYTE), "SITE_CODE_UPPER" VARCHAR2(10 BYTE), "TAX_ID" VARCHAR2(35 BYTE), "VAT_NUMBER" VARCHAR2(25 BYTE), "SEND_1099" CHAR(1 BYTE), "GLA_AR" NUMBER, "GLA_AP" NUMBER, "EMAIL_ADDRESS" VARCHAR2(255 BYTE), "IQ_ENABLE_QTY" CHAR(1 BYTE), "IQ_ENABLE_PRICE" CHAR(1 BYTE), "IQ_ENABLE_CONDITION" CHAR(1 BYTE), "IQ_ENABLE_STOCK" CHAR(1 BYTE), "IQ_ENABLE_TIMELIFE" CHAR(1 BYTE), "IQ_ENABLE_RFQ" CHAR(1 BYTE), "IQ_ENABLE_PO" CHAR(1 BYTE), "SYSUR_IQ_NOTIFY_RFQ" NUMBER, "SYSUR_IQ_NOTIFY_PO" NUMBER, "ALLOW_ANY" VARCHAR2(10 BYTE), "ALLOW_CQ" VARCHAR2(10 BYTE), "ALLOW_VQ" VARCHAR2(10 BYTE), "ALLOW_PO" VARCHAR2(10 BYTE), "ALLOW_SO" VARCHAR2(10 BYTE), "ALLOW_IN" VARCHAR2(10 BYTE), "ALLOW_RO" VARCHAR2(10 BYTE), "IQ_LOC" NUMBER, "IQ_USER" VARCHAR2(30 BYTE), "IQ_PASS" VARCHAR2(30 BYTE), "IQ_RESPONSE_EMAIL" VARCHAR2(60 BYTE), "IQ_HOSTNAME_OVERRIDE" VARCHAR2(100 BYTE), "IQ_SEQ" NUMBER DEFAULT 1, "IQ_CURRENCY" VARCHAR2(50 BYTE), "AGN_AUTO_KEY" NUMBER, "SPN_AUTO_KEY" NUMBER, "FAX_STRIPPED" VARCHAR2(20 BYTE), "DEFERRED_REC" CHAR(1 BYTE) DEFAULT 'F', "SPEC_2000" CHAR(1 BYTE) DEFAULT 'F', "CAP_RESTRICT_LEVEL" VARCHAR2(8 BYTE) DEFAULT 'NONE', "AP_TOTAL" NUMBER(19,4) DEFAULT 0, "IQ_VIEW_RFQ" CHAR(1 BYTE), "IQ_VIEW_PO" CHAR(1 BYTE), "IQ_QUOTE_TO_PO" CHAR(1 BYTE), "CONVERTED" CHAR(1 BYTE) DEFAULT 'F', "ILS_CODE" VARCHAR2(4 BYTE), "CV_UDF_016" VARCHAR2(40 BYTE), "CV_UDF_017" VARCHAR2(40 BYTE), "CV_UDF_018" VARCHAR2(40 BYTE), "CV_UDF_019" VARCHAR2(40 BYTE), "CV_UDF_020" VARCHAR2(255 BYTE), "CV_UDF_021" VARCHAR2(50 BYTE), "CV_UDF_022" VARCHAR2(50 BYTE), "CV_UDF_023" VARCHAR2(50 BYTE), "CV_UDF_024" VARCHAR2(50 BYTE), "CV_UDF_025" VARCHAR2(50 BYTE), "CQ_WARNING" CLOB DEFAULT empty_clob(), "SO_WARNING" CLOB DEFAULT empty_clob(), "IN_WARNING" CLOB DEFAULT empty_clob(), "VQ_WARNING" CLOB DEFAULT empty_clob(), "PO_WARNING" CLOB DEFAULT empty_clob(), "RO_WARNING" CLOB DEFAULT empty_clob(), "WO_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_WO" VARCHAR2(10 BYTE), "QUANTUM_ID" NUMBER, "ALLOW_CM" VARCHAR2(10 BYTE), "CM_WARNING" CLOB DEFAULT empty_clob(), "TMC_VEND_OVERRIDE" NUMBER, "EB_USERID" VARCHAR2(40 BYTE), "DBA" CHAR(1 BYTE) DEFAULT 'F', "CMP_PARENT" NUMBER, "MKT_COMPANY_CODE" VARCHAR2(10 BYTE), "MKC_AUTO_KEY" NUMBER, "CV_UDF_053" DATE, "DEFERRED_RO_REC" CHAR(1 BYTE), "USE_MKT" CHAR(1 BYTE) DEFAULT 'F', "RESTRICTED" CHAR(1 BYTE) DEFAULT 'F', "SYSUR_AUTO_KEY" NUMBER, "DATE_CREATED" DATE, "PRIORITY_VENDOR" CHAR(1 BYTE) DEFAULT 'F', "CREDIT_LIMIT" NUMBER(19,4) DEFAULT 0, "QB_CUST_LISTID" VARCHAR2(40 BYTE), "QB_VEND_LISTID" VARCHAR2(40 BYTE), "SDF_CMP_001" VARCHAR2(40 BYTE), "SDF_CMP_002" VARCHAR2(40 BYTE), "SDF_CMP_003" VARCHAR2(40 BYTE), "SDF_CMP_004" VARCHAR2(40 BYTE), "SDF_CMP_005" VARCHAR2(40 BYTE), "SDF_CMP_006" VARCHAR2(40 BYTE), "SDF_CMP_007" VARCHAR2(40 BYTE), "SDF_CMP_008" VARCHAR2(40 BYTE), "SDF_CMP_009" VARCHAR2(40 BYTE), "SDF_CMP_010" VARCHAR2(40 BYTE), "ELC_REQUIRED" CHAR(1 BYTE) DEFAULT 'F', "LABOR_DISCOUNT" NUMBER(19,4), "CV_UDF_054" DATE, "CNC_AUTO_KEY" NUMBER, "ALLOW_WC" VARCHAR2(10 BYTE), "WC_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_WQ" VARCHAR2(10 BYTE), "WQ_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_WQ_BILL" VARCHAR2(10 BYTE), "WQ_BILL_WARNING" CLOB DEFAULT empty_clob(), "CORE_DUE_DAYS" NUMBER, "DEPT_COMPANY" CHAR(1 BYTE) DEFAULT 'F', "REQ_VERIFICATION" CHAR(1 BYTE) DEFAULT 'F', "TRACK_CHANGES" CHAR(1 BYTE) DEFAULT 'F', "GLD_AR" NUMBER, "GLD_AP" NUMBER, "COC_AUTO_KEY" NUMBER, "SHIP_NAME" VARCHAR2(50 BYTE), "DTC_AUTO_KEY" NUMBER, "LAST_MODIFIED" DATE, "SYSUR_MODIFIED" NUMBER, "GLD_AP_PREPAY" NUMBER, "GLD_AR_PREPAY" NUMBER, "EDI_NUMBER" VARCHAR2(30 BYTE), "EDI_SEQUENCE" NUMBER, "LANG_CODE" VARCHAR2(2 BYTE) DEFAULT 'GB', "ENQUEUE_MSG" CHAR(1 BYTE), "ROUTING_NUMBER" VARCHAR2(15 BYTE), "ACCOUNT_NUMBER" VARCHAR2(35 BYTE), "ACH_VENDOR" VARCHAR2(1 BYTE) DEFAULT 'F', "GLD_AP_EXPENSE" NUMBER, "WEB_SITE" VARCHAR2(100 BYTE), "INVOICE_EMAIL" VARCHAR2(60 BYTE), "GLD_AP_SUSPENSE" NUMBER, "INTERNAL_FLAG" VARCHAR2(1 BYTE) DEFAULT 'F', "COC_OFFICE" NUMBER, "APPROVAL_EXPIRE" DATE, "APR_AUTO_KEY" NUMBER, "CONVERSION_ID" NUMBER, "DHL_DELIVERY_DUTY_PAYOR" VARCHAR2(15 BYTE) DEFAULT 'DDU', "ALLOW_WP" VARCHAR2(10 BYTE), "WP_WARNING" CLOB DEFAULT empty_clob(), "VQ_APPROVED" VARCHAR2(1 BYTE) DEFAULT 'F', "CFF_AUTO_KEY" NUMBER, "BANK_NAME" VARCHAR2(70 BYTE), "BANK_ADDRESS1" VARCHAR2(35 BYTE), "BANK_ADDRESS2" VARCHAR2(35 BYTE), "BANK_ADDRESS3" VARCHAR2(35 BYTE), "BANK_COUNTRY_CODE" VARCHAR2(3 BYTE), "INTERMEDIATE_BANK_NAME" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_ADDRESS1" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_ADDRESS2" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_ADDDRES3" VARCHAR2(35 BYTE), "INTERMEDIATE_BANK_COUNTRY" VARCHAR2(3 BYTE), "INTERMEDIATE_BANK_SWIFT" VARCHAR2(11 BYTE), "INTERMEDIATE_CLEARING_CODE" VARCHAR2(30 BYTE), "INTERMEDIATE_CLEARING_TYPE" VARCHAR2(35 BYTE), "SWIFT_CODE" VARCHAR2(11 BYTE), "ALLOW_MO" VARCHAR2(10 BYTE), "MO_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_PR" VARCHAR2(10 BYTE), "PR_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_LC" VARCHAR2(10 BYTE), "LC_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_AP" VARCHAR2(10 BYTE), "AP_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_CR" VARCHAR2(10 BYTE), "CR_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_RR" VARCHAR2(10 BYTE), "RR_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_CKM" VARCHAR2(10 BYTE), "CKM_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_SMB" VARCHAR2(10 BYTE), "SMB_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_SM" VARCHAR2(10 BYTE), "SM_WARNING" CLOB DEFAULT empty_clob(), "ALLOW_RI" VARCHAR2(10 BYTE), "RI_WARNING" CLOB DEFAULT empty_clob(), "SDF_CMP_011" VARCHAR2(40 BYTE), "SDF_CMP_012" VARCHAR2(40 BYTE), "SDF_CMP_013" VARCHAR2(40 BYTE), "SDF_CMP_014" VARCHAR2(40 BYTE), "SDF_CMP_015" VARCHAR2(40 BYTE), "SDF_CMP_016" VARCHAR2(40 BYTE), "SDF_CMP_017" VARCHAR2(40 BYTE), "SDF_CMP_018" VARCHAR2(40 BYTE), "SDF_CMP_019" VARCHAR2(40 BYTE), "SDF_CMP_020" VARCHAR2(40 BYTE), "RECO" VARCHAR2(1 BYTE) DEFAULT 'F', "EDD_ID" VARCHAR2(50 BYTE), "SMA_WARNING" CLOB DEFAULT empty_clob(), "BOX_1099" NUMBER DEFAULT 7, "REQ_CONTRACT" VARCHAR2(1 BYTE) DEFAULT 'F', "BANK_CHARGES_INDICATOR" NUMBER DEFAULT 0, "PO_COST_METHOD" CHAR(1 BYTE) DEFAULT '0', "BUC_CODE" VARCHAR2(20 BYTE), "WO_NOTES" CLOB DEFAULT empty_clob(), "MSG_VENDOR" CHAR(1 BYTE) DEFAULT 'F', "AMAZON_BUCKET" VARCHAR2(256 BYTE), "QQM_SENDER_ID" VARCHAR2(10 BYTE), "MFG_AUTO_KEY" NUMBER, "INTEGRATED_MANUALS" VARCHAR2(1 BYTE), "SDF_CMP_021" VARCHAR2(40 BYTE), "TRACKER_VISIBLE_PORTAL" VARCHAR2(1 BYTE), "BOA_WARNING" CLOB DEFAULT empty_clob(), "PBH_FLAG" VARCHAR2(1 BYTE), "ALLOW_SMS" VARCHAR2(10 BYTE) DEFAULT 'Yes', "SMS_WARNING" CLOB DEFAULT empty_clob(), "PMA_RESTRICTED" VARCHAR2(1 BYTE) DEFAULT 'F', "IBAN_ACCOUNT_NUMBER" VARCHAR2(35 BYTE), "DER_RESTRICTED" VARCHAR2(1 BYTE) DEFAULT 'F', "HISTORICAL" VARCHAR2(1 BYTE) DEFAULT 'F', "ALLOW_CERT" VARCHAR2(10 BYTE), "CERT_WARNING" CLOB DEFAULT empty_clob(), "STOCK_SAFETY_PRIORITY_LEVEL" NUMBER, "FOB" VARCHAR2(30 BYTE), "SYSCM_AUTO_KEY" NUMBER, "AEX_REGISTRATION_ID" VARCHAR2(10 BYTE), "QQM_IMS_AUTO_KEY" NUMBER, "ALLOW_RC" VARCHAR2(10 BYTE), "RC_WARNING" CLOB DEFAULT empty_clob(), "CMG_AUTO_KEY" NUMBER, "EDI_AUTO_DELIVER" VARCHAR2(1 BYTE), CONSTRAINT "VALID_RULE_21641" CHECK ( SPEC_2000 in ('F','T') ) ENABLE, CONSTRAINT "VALID_RULE_179" CHECK ( CAP_RESTRICT_LEVEL IN ('NONE', 'WARN', 'RESTRICT') ) ENABLE, CONSTRAINT "VALID_RULE_21640" CHECK ( DEFERRED_REC in ('F','T') ) ENABLE, CONSTRAINT "FK_SYSR_CMP" FOREIGN KEY ("SYSUR_AUTO_KEY") REFERENCES "QCTL"."SYS_USERS" ("SYSUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_TMC_CMP" FOREIGN KEY ("TMC_AUTO_KEY") REFERENCES "QCTL"."TERM_CODES" ("TMC_AUTO_KEY") ENABLE, CONSTRAINT "FK_COC_CMP_OFFICE" FOREIGN KEY ("COC_OFFICE") REFERENCES "QCTL"."COUNTRY_CODES" ("COC_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AR_PREPAY" FOREIGN KEY ("GLD_AR_PREPAY") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_TMC_CMP_VEND" FOREIGN KEY ("TMC_VEND_OVERRIDE") REFERENCES "QCTL"."TERM_CODES" ("TMC_AUTO_KEY") ENABLE, CONSTRAINT "FK_CLC_CMP" FOREIGN KEY ("CLC_AUTO_KEY") REFERENCES "QCTL"."CLASS_CODES" ("CLC_AUTO_KEY") ENABLE, CONSTRAINT "FK_COC_CMP" FOREIGN KEY ("COC_AUTO_KEY") REFERENCES "QCTL"."COUNTRY_CODES" ("COC_AUTO_KEY") ENABLE, CONSTRAINT "FK_DTC_CMP" FOREIGN KEY ("DTC_AUTO_KEY") REFERENCES "QCTL"."DELIVERY_TERMS" ("DTC_AUTO_KEY") ENABLE, CONSTRAINT "FK_MKC_CMP" FOREIGN KEY ("MKC_AUTO_KEY") REFERENCES "QCTL"."MARKUP_CODES" ("MKC_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AP_SUSPENSE" FOREIGN KEY ("GLD_AP_SUSPENSE") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_CUR_CMP" FOREIGN KEY ("CUR_AUTO_KEY") REFERENCES "QCTL"."CURRENCY" ("CUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_TXT_CMP" FOREIGN KEY ("TXT_AUTO_KEY") REFERENCES "QCTL"."TAX_TABLE" ("TXT_AUTO_KEY") ENABLE, CONSTRAINT "FK_QQM_IMS_CMP" FOREIGN KEY ("QQM_IMS_AUTO_KEY") REFERENCES "QCTL"."IMAGE_SERVER" ("IMS_AUTO_KEY") ENABLE, CONSTRAINT "FK_MFG_CMP" FOREIGN KEY ("MFG_AUTO_KEY") REFERENCES "QCTL"."MANUFACTURER" ("MFG_AUTO_KEY") ENABLE, CONSTRAINT "FK_APR_CMP" FOREIGN KEY ("APR_AUTO_KEY") REFERENCES "QCTL"."APPROVAL_CODES" ("APR_AUTO_KEY") ENABLE, CONSTRAINT "FK_SYSR_CMP_PO" FOREIGN KEY ("SYSUR_IQ_NOTIFY_PO") REFERENCES "QCTL"."SYS_USERS" ("SYSUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_FPC_CMP" FOREIGN KEY ("FPC_AUTO_KEY") REFERENCES "QCTL"."FAX_PREFIX_CODES" ("FPC_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AP_EXPENSE" FOREIGN KEY ("GLD_AP_EXPENSE") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_SVC_CMP" FOREIGN KEY ("SVC_AUTO_KEY") REFERENCES "QCTL"."SHIP_VIA_CODES" ("SVC_AUTO_KEY") ENABLE, CONSTRAINT "FK_CMG_CMP" FOREIGN KEY ("CMG_AUTO_KEY") REFERENCES "QCTL"."COMPANY_GROUPS" ("CMG_AUTO_KEY") ENABLE, CONSTRAINT "FK_SYSR_CMP_RFQ" FOREIGN KEY ("SYSUR_IQ_NOTIFY_RFQ") REFERENCES "QCTL"."SYS_USERS" ("SYSUR_AUTO_KEY") ENABLE, CONSTRAINT "FK_GLD_CMP_AP_PREPAY" FOREIGN KEY ("GLD_AP_PREPAY") REFERENCES "QCTL"."GL_DISTRIBUTION" ("GLD_AUTO_KEY") ENABLE, CONSTRAINT "FK_CFF_CMP" FOREIGN KEY ("CFF_AUTO_KEY") REFERENCES "QCTL"."CK_FILE_FORMAT_CODES" ("CFF_AUTO_KEY") ENABLE, CONSTRAINT "FK_CMP_CMP" FOREIGN KEY ("CMP_PARENT") REFERENCES "QCTL"."COMPANIES" ("CMP_AUTO_KEY") ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
Traceback (most recent call last):
File "/usr/lib64/python3.11/runpy.py", line 198, in _run_module_as_main
return _run_code(code, main_globals, None,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/runpy.py", line 88, in _run_code
exec(code, run_globals)
File "/home/cameron/.vscode-server/extensions/ms-python.python-2023.16.0/pythonFiles/lib/python/debugpy/adapter/../../debugpy/launcher/../../debugpy/main.py", line 39, in