Skip to content

Commit 8b0470a

Browse files
committed
This release resolves the persistent **ORA-06550 compilation errors** that users experienced when executing PL/SQL blocks containing BEGIN...END; statements.
- **#126**: Constant Oracle query error: ORA-06550 when using a BEGIN/END; block **Problem**: The query processing logic automatically removed trailing semicolons from ALL queries to prevent `ORA-00933` errors with regular SQL statements. However, PL/SQL blocks **require** semicolons for proper compilation. **Solution**: Implemented intelligent PL/SQL block detection that: - ✅ **Preserves semicolons** for PL/SQL blocks (required for compilation) - ✅ **Removes semicolons** for regular SQL statements (prevents ORA-00933) - ✅ **Maintains full backward compatibility** Now works perfectly with all PL/SQL scenarios: ```sql -- ✅ Simple anonymous blocks BEGIN NULL; END; -- ✅ Blocks with procedures BEGIN DBMS_OUTPUT.PUT_LINE('Hello World'); END; -- ✅ Blocks with bind variables BEGIN :result := 'Success'; END; -- ✅ DECLARE blocks DECLARE v_count NUMBER; BEGIN SELECT COUNT(*) INTO v_count FROM dual; END; -- ✅ Stored procedure calls BEGIN get_employee_name(:emp_id, :emp_name); END; ``` Updated to latest stable versions for improved security and performance: - **oracledb**: `^6.9.0` → `^6.10.0` (latest Oracle driver) - **@typescript-eslint/eslint-plugin**: `^7.13.0` → `^8.46.2` - **@typescript-eslint/parser**: `^7.13.0` → `^8.46.2` - **@types/jquery**: `^3.5.32` → `^3.5.33` - **del**: `^8.0.0` → `^8.0.1` - **dotenv**: `^17.2.1` → `^17.2.3` - **gulp-eslint-new**: `^2.1.0` → `^2.5.0` - Added 4 comprehensive PL/SQL-specific test cases - All 10 tests passing with 100% success rate - Verified compatibility with updated dependencies - Integrated troubleshooting section in README - Updated documentation with fix information and examples - Comprehensive error resolution guidance - Clean build with zero ESLint errors - Optimized package size: 13.2 kB compressed (47.6 kB unpacked) - Production-ready with proper file exclusions If you were experiencing ORA-06550 errors: 1. **Update to v0.7.6**: `npm update node-red-contrib-oracledb-mod` 2. **Restore proper semicolons** to your PL/SQL blocks if you removed them as a workaround 3. **Use `"single-meta"` result action** for blocks with OUT parameters 4. **Test your flows** - they should now work without errors ✅ **Fully backward compatible** - all existing flows continue to work exactly as before. --- **Full Changelog**: [v0.7.5...v0.7.6](v0.7.5...v0.7.6) **Issues Resolved**: #126 ```bash npm install node-red-contrib-oracledb-mod@0.7.6 ``` Or update via Node-RED Palette Manager.
1 parent 02ad762 commit 8b0470a

File tree

8 files changed

+396
-245
lines changed

8 files changed

+396
-245
lines changed

.eslintrc.js

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,15 @@ module.exports = {
44
plugins: [ '@typescript-eslint' ],
55
extends: [ 'eslint:recommended', 'plugin:@typescript-eslint/recommended' ],
66
rules: {
7-
"semi": ["error", "always"], "quotes": ["error", "double"],
8-
"@typescript-eslint/no-explicit-any": "off", "@typescript-eslint/no-var-requires": "off",
9-
"no-prototype-builtins": "off", "@typescript-eslint/ban-types": "off",
10-
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_" }],
7+
"semi": ["error", "always"],
8+
"quotes": ["error", "double"],
9+
"@typescript-eslint/no-explicit-any": "off",
10+
"@typescript-eslint/no-var-requires": "off",
11+
"@typescript-eslint/no-require-imports": "off",
12+
"@typescript-eslint/no-unused-expressions": "off",
13+
"no-prototype-builtins": "off",
14+
"@typescript-eslint/ban-types": "off",
15+
"@typescript-eslint/no-unused-vars": ["error", { "argsIgnorePattern": "^_|^err$" }],
1116
"@typescript-eslint/no-this-alias": "off",
1217
}
1318
};

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@ pids
1010
*.pid
1111
*.seed
1212
*.pid.lock
13+
*eignore
14+
*RELEASE*md
15+
*RESPONSE*md
1316

1417
# Directory for instrumented libs generated by jscoverage/JSCover
1518
lib-cov

lib/oracledb.js

Lines changed: 16 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)