From oracle-ai-data-platform-workbench-spark-connectors
Read from Oracle Siebel CRM into a Spark DataFrame in an AIDP notebook via the AIDP `aidataplatform` Spark format handler. Use when the user mentions Siebel, Siebel CRM, S_CONTACT, S_ORG_EXT, or has a Siebel host/port. Auth is host/port + database name + user/password. Read-only.
How this skill is triggered — by the user, by Claude, or both
Slash command
/oracle-ai-data-platform-workbench-spark-connectors:aidp-siebelThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
- User wants to ingest Siebel CRM data (contacts, accounts, opportunities, service requests) into a Spark DataFrame from an AIDP notebook.
aidp-siebel — Oracle Siebel CRM via AIDP aidataplatformaidp-alh.aidp-peoplesoft.aidp-oracle-db.sys.path (run aidp-connectors-bootstrap first).SIEBEL_HOST, SIEBEL_PORT (typically 1521)SIEBEL_DATABASE_NAME (Oracle SID / service)SIEBEL_USER, SIEBEL_PASSWORDSIEBEL_SCHEMA (typically SIEBEL)SIEBEL_TABLE (a Siebel base table, e.g. S_CONTACT, S_ORG_EXT)import os
from oracle_ai_data_platform_connectors.aidataplatform import (
AIDP_FORMAT, aidataplatform_options,
)
opts = aidataplatform_options(
type="ORACLE_SIEBEL",
host=os.environ["SIEBEL_HOST"],
port=int(os.environ["SIEBEL_PORT"]),
database_name=os.environ["SIEBEL_DATABASE_NAME"],
user=os.environ["SIEBEL_USER"],
password=os.environ["SIEBEL_PASSWORD"],
schema=os.environ.get("SIEBEL_SCHEMA", "SIEBEL"),
table=os.environ["SIEBEL_TABLE"],
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)
Use pushdown.sql to run a complete source query — push joins, filters, and aggregations to the Siebel DB instead of pulling whole base tables into Spark.
opts = aidataplatform_options(
type="ORACLE_SIEBEL",
host=os.environ["SIEBEL_HOST"],
port=int(os.environ["SIEBEL_PORT"]),
database_name=os.environ["SIEBEL_DATABASE_NAME"],
user=os.environ["SIEBEL_USER"],
password=os.environ["SIEBEL_PASSWORD"],
extra={
"pushdown.sql": (
"SELECT C.ROW_ID, C.LAST_NAME, C.FST_NAME, O.NAME AS ACCOUNT "
"FROM SIEBEL.S_CONTACT C "
"JOIN SIEBEL.S_ORG_EXT O ON C.PR_HELD_POSTN_ID = O.ROW_ID "
"WHERE C.STATUS_CD = 'Active'"
),
},
)
df = spark.read.format(AIDP_FORMAT).options(**opts).load()
df.show(10)
aidp-oracle-db apply.SIEBEL schema owner. Standard Siebel install owns all base tables (S_*) under the SIEBEL schema. The connector user needs SELECT privs.ROW_ID keys and LAST_UPD for incremental ingest. Filter with WHERE LAST_UPD > :since via pushdown.sql for delta loads.CREATED, CREATED_BY, LAST_UPD, LAST_UPD_BY are populated by triggers on every row — useful for change tracking.npx claudepluginhub daiiis/claude-code-plugins --plugin oracle-ai-data-platform-workbench-spark-connectorsGuides completion of development work by verifying tests, detecting environment, and presenting structured options for merge, PR, or cleanup.
Guides creation and editing of skills using test-driven development with pressure scenarios and subagents to verify agent compliance.
Dispatches multiple subagents concurrently for independent tasks without shared state. Use when facing 2+ unrelated failures or subsystems that can be investigated in parallel.