IvorySQL + PL/SQL dev with pgTAP and compat tools, optimized for development token efficiency
1.5K
Cost savings: use the tweakcc reduced system prompt + specialized PL/SQL tools for the best results. A default Claude Code prompt injects 30K+ characters per turn — that's $90/MTurn on Sonnet and $150 on Opus for tokens you never read. The tweakcc thinkingVerbs and ablated prompts trim this to ~10K, saving up to 90% on cached reads and ~$4.50/hour in input for a coding session at 100 requests/hour.
Drop PL/SQL source files into a container and ask Claude to compile stored procedures, debug queries, lint SQL, migrate Oracle code, run pgTAP tests, profile performance, and ship them. This image combines Claude Code (abliterated) with the IvorySQL database engine, pgTAP testing framework, sqlfluff linter, dbt data transformation, ora2pg migration tool, and all build tools — a complete PL/SQL development workstation for disconnected enterprise environments.
This container is a focused PL/SQL/IvorySQL development environment with the full stack of tools needed to develop, test, lint, format, migrate, and deploy stored procedures and database schemas:
No configuration, no setup. Give it .sql/.plsql source files and ask Claude to compile (CREATE FUNCTION), lint, debug, profile, migrate, and ship.
Building Oracle-compatible database applications typically means installing IvorySQL, configuring pgTAP for testing, setting up sqlfluff for linting, configuring dbt for transformations, and installing ora2pg for migration. This container bundles it all and makes it accessible to Claude via a single prompt.
| Without this container | With plsql-claude-abliterated |
|---|---|
| Install IvorySQL, pgTAP, sqlfluff separately | docker run — everything is ready |
| Configure Oracle-compatible PL/pgSQL syntax | Claude knows IvorySQL's Oracle compatibility layer |
| Run pgTAP unit tests with proper setup | Ask Claude — it initializes the database and runs tests automatically |
| One tool per terminal session | psql, sqlfluff, dbt, ora2pg, pgFormatter all available |
| Manual migration configuration (ora2pg) | Pre-configured Oracle-to-IvorySQL conversion tools |
The container works with any PL/SQL project under /workdir:
.sqlfluff config| Component | Source | Description |
|---|---|---|
| IvorySQL 5.4 | ivorysql.org | Oracle-compatible PostgreSQL fork with PL/pgSQL + Oracle syntax support |
| pgTAP v1.3.4 | pgtap.org | Unit testing framework for PL/pgSQL functions and procedures |
| plpgsql_check v2.10.2 | github.com/okbob/plpgsql_check | Static analyzer for PL/pgSQL stored procedures |
| sqlfluff v4.2.2 | sqlfluff.com | SQL linter with dbt-postgres dialect support and best practice enforcement |
| dbt-postgres v1.11 | getdbt.com | Data transformation tool for building ELT pipelines on PostgreSQL/IvorySQL |
| ora2pg v24.3 | ora2pg.org | Oracle-to-PostgreSQL/IvorySQL migration tool (DDL, DML, PL/SQL conversion) |
| pgFormatter v5.10 | pgformatter.com | SQL and PL/pgSQL code formatter with Oracle compatibility rules |
| pgcli | pgcli.com | Smart PostgreSQL client with autocomplete, syntax highlighting, and keybindings |
| psql + pg_dump | postgresql.org | Full database client and backup suite for IvorySQL/PostgreSQL |
| ecpg | postgresql.org | Embedded C/SQL preprocessor for PL/pgSQL-C interop |
| Component | Source | Description |
|---|---|---|
| gdb | rockylinux.dev | Full-screen TUI debugger with native expression evaluation |
| valgrind | valgrind.org | Memory leak detection, profiling (memcheck, cachegrind) for C extensions |
| make/cmake | cmake.org | Build automation for multi-file and mixed-language projects |
Prompt Claude to use standard SQL linting practices. You can say "use the plsql skill to compile stored procedures, run pgTAP tests, and lint with sqlfluff" and Claude will apply PL/pgSQL-specific compilation rules, break tasks down properly, and verify each segment works.
Directed skills improve code quality and resilience. With abliterated Claude and directed skills:
Say "use the plsql skill to..." to directly task Claude with PL/SQL-specific skills — IvorySQL compilation, pgTAP testing, sqlfluff linting, ora2pg migration, and dbt data transformation.
# Initialize database and run SQL scripts
docker run -u $(id -u):$(id -g) \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest \
bash -c '/usr/ivory-5/bin/initdb -D /tmp/db && \
/usr/ivory-5/bin/pg_ctl -D /tmp/db start -w && \
psql -p 5432 -f schema.sql && \
/usr/ivory-5/bin/pg_ctl -D /tmp/db stop'
# Run pgTAP unit tests against compiled functions
docker run -u $(id -u):$(id -g) \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest \
bash -c '/usr/ivory-5/bin/initdb -D /tmp/db >/dev/null 2>&1 && \
/usr/ivory-5/bin/pg_ctl -D /tmp/db start -w >/dev/null 2>&1 && \
sleep 2; psql -p 5432 -f tests/test_bonus.sql'
# Lint SQL files with sqlfluff
docker run -u $(id -u):$(id -g) \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest \
bash -c 'sqlfluff lint --dialect postgres *.sql'
# Format SQL with pgFormatter
docker run -u $(id -u):$(id -g) \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest \
bash -c 'pg_format schema.sql > formatted_schema.sql'
# Migrate Oracle DDL to IvorySQL with ora2pg
docker run -u $(id -u):$(id -g) \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest \
bash -c 'ora2pg --configure -c /workdir/ora2pg.conf && ora2pg -c ora2pg.conf -o schema.sql'
# With Claude Code integration (asks for ANTHROPIC_API_KEY env var)
docker run -u $(id -u):$(id -g) -e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest
# Privileged mode (for full device access and database initialization)
docker run --privileged -u $(id -u):$(id -g) -e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest
# Or with podman:
podman run -u $(id -u):$(id -g) --userns=keep-id \
-e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest
# With Ollama for local LLM integration
docker run -u $(id -u):$(id -g) -e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest
# Claude-tools development shell — start an interactive /bin/bash session with claude-tools available on $PATH
docker run -u $(id -u):$(id -g) -e ANTHROPIC_API_KEY=sk-... \
-v "$PWD:/workdir:rw" \
t2fn/plsql-claude-abliterated:latest /bin/bash
# Then send a prompt:
# "create schema.sql with table definitions, write PL/pgSQL functions, run pgTAP tests"
Claude connects to the IvorySQL database engine, calls CREATE FUNCTION, runs pgTAP tests, traces Oracle compatibility issues, and returns a natural-language report — all from one prompt.
This container runs on claude-abliterated:rocky10, which uses the tweakcc (tweakcc-fixed) reduced system prompt to cut ~67% off daily-flow prompts — from ~30K to ~10K characters. For PL/SQL development, this means:
"Claude" and "Claude Code" are registered trademarks of Anthropic, PBC. This project uses the name "Claude" in a nominative (descriptive) sense — it identifies the Anthropic product (Claude Code) that this project is built to work with, consistent with the nominative fair use doctrine. The use is necessary: a third-party project cannot refer to "Claude Code" without using the mark itself.
This project is not affiliated with, endorsed by, or sponsored by Anthropic, PBC. The name "plsql-claude-abliterated" is a third-party project name where:
The project uses both "PL/SQL" and "Claude" to describe what it works with, not who it is from.
All other trademarks belong to their respective owners. No implication of endorsement is made by the use of these marks.
| Container | Purpose | Hub |
|---|---|---|
| asm-claude-abliterated | Cross-architecture assembly dev stack | Hub |
| gcc-claude-abliterated | C/C++ development with GCC + valgrind | Hub |
| golang-claude-abliterated | Go development with gopls + golangci-lint | Hub |
| python-claude-abliterated | Python linting with ruff + mypy | Hub |
| rust-claude-abliterated | Rust dev with clippy + cargo | Hub |
| java-claude-abliterated | Java/Spring Boot with Maven + Gradle | Hub |
| typescript-claude-abliterated | TypeScript dev with biome + eslint | Hub |
| ada-claude-abliterated | Ada development (GNAT via alr, AUnit testing) | Hub |
| cobol-claude-abliterated | COBOL compilation for mainframe modernization | Hub |
| fortran-claude-abliterated | Fortran HPC with BLAS/LAPACK math libs | Hub |
| julia-claude-abliterated | Julia scientific computing and IJulia notebooks | Hub |
| apache-claude-abliterated | Apache Spark + Pig big data processing | Hub |
| hdl-claude-abliterated | FPGA/ASIC HDL dev (iverilog, ghdl, verilator) | Hub |
| pascal-claude-abliterated | Pascal compilation (Free Pascal Compiler 3.2.x, gdb, valgrind) | Hub |
| forth-claude-abliterated | Forth stack-based computing (gforth interpreter/compiler, gdb, valgrind) | Hub |
| pli-claude-abliterated | PL/I mainframe compilation (xPL/C → gcc pipeline, gdb, valgrind) | Hub |
| plsql-claude-abliterated | PL/SQL + IvorySQL database dev stack (psql, sqlfluff, dbt-postgres, pgTAP, ora2pg) | This image |
Source code and suggestions/issues/pull requests can be made at:
Content type
Image
Digest
sha256:ba57a3320…
Size
625.8 MB
Last updated
25 days ago
docker pull t2fn/plsql-claude-abliterated