Файли
openidea/docs/databases.md
T
Budi Santosoтаboenkkk 8ddf979cfe feat(db): separate procedures and functions into their own schema folders (#2270)
The database tree lists routines in one `routines` folder. A Separate Procedures and Functions option in the Database tool window's menu (off by default, remembered across sessions) lists `procedures` and `functions` folders instead, each holding only routines of that kind, with the same overload-aware keys and object filter. Expanded folders carry over when the option is switched either way.

Co-authored-by: boenkkk <[email protected]>
2026-11-09 18:05:59 +08:00

3.2 KiB
Неформатований Постійне посилання Анотація Історія

Databases

The Database tool window (View ▸ Tool Windows ▸ Database) connects to SQLite, PostgreSQL, MySQL/MariaDB, Microsoft SQL Server, ClickHouse and Oracle, plus the wire-compatible products listed in New ▸ Data Source. Connections are saved per project in .openidea/data-sources.toml; passwords live outside the project (and never in that file).

The Database tree groups procedures and functions in one routines folder by default. Enable Separate Procedures and Functions in the Database window’s Options menu to show procedures and functions folders instead. This view option is remembered across sessions.

Oracle: Oracle Instant Client

Oracle support uses the Oracle Call Interface, so the Oracle client libraries must be installed on the machine. OpenIDEA does not bundle them: install the Oracle Instant Client for your platform and point the data source at it.

  1. Download the Basic (or Basic Light) package of Oracle Instant Client 19c or later for your OS from https://www.oracle.com/database/technologies/instant-client/downloads.html.
  2. Unpack it somewhere stable, then, in the data source's Options tab, set Instant Client to that directory.
  3. General tab: host, port (1521), and the service name (for example ORCLPDB1) in the Database field. Connect with the schema's user and its password.

java.sql-style URLs also work in the URL field:

oracle://scott:[email protected]:1521/ORCLPDB1
jdbc:oracle:thin:@//db.example.com:1521/ORCLPDB1

A TNS descriptor or alias in the Database field is passed to the client as is.

Platform notes

  • macOS — the Basic ZIP for ARM (Apple silicon) or x86-64 must match the app's architecture. Remove the quarantine flag if macOS blocks the libraries: xattr -dr com.apple.quarantine /opt/oracle/instantclient_23_5.
  • Windows — use the 64-bit package; the app is 64-bit. PATH does not have to include the directory when the Options tab names it.
  • Linux — install the RPM/DEB or unzip the ZIP; the directory needs the libclntsh.so and libclntshcore.so libraries (the ZIP's libaio-based builds also need the libaio package).

Without a working client, Test Connection fails with a clear message (DPI-1047: Cannot locate a 64-bit Oracle Client library…). If the Options tab is empty and ORACLE_HOME is not set, the client is looked up on the system search path.

What Oracle data sources support

  • Schemas = Oracle users (ALL_USERS); system accounts (SYS, SYSTEM, XDB, MDSYS…) appear only with Schemas ▸ Show system.
  • Tables, views, columns, indexes, foreign keys, triggers, procedures, functions and sequences are read from the ALL_* views.
  • The query console runs SQL and PL/SQL blocks; BEGIN … END; blocks (nested ; included) are sent as one statement, and a lone / on its own line ends one as in SQL*Plus.
  • Explain Plan runs EXPLAIN PLAN and reads PLAN_TABLE (DBMS_XPLAN output is not required).
  • Table editor (INSERT/UPDATE/DELETE in one transaction), Import/Export and generated SQL use Oracle syntax: "UPPER_CASE" identifiers, FETCH FIRST n ROWS ONLY, MODIFY (…) for column changes.

Table editing needs a primary key, and the connection must not be read-only.