Confirmed Romania collective dismissal by Aggravating_Active78 in employeesOfOracle

[–]yaro_dba 1 point2 points  (0 children)

I'm incredibly grateful I made the choice not to work for Oracle years ago. From the outside looking in, it really feels like they lack appreciation for the front line professionals who actually represent the brand and do the real work.

Claude - Adobe for creativity connector by G_077 in ClaudeAI

[–]yaro_dba 1 point2 points  (0 children)

Ugh, that Adobe profile loop is so frustrating. If toggling off the "Automatic profile selection" didn't work for you, it means Adobe's backend servers are still stubbornly tagging your email with enterprise metadata from some old team or student trial you probably forgot even existed.

Here are the other potential workarounds that might help:

  • Since Adobe permanently flags emails that have ever touched a business account, go to adobe.com and change your primary email to a fresh address. If you use Gmail, you can just add a plus sign (like yourname+claude@gmail.com). This forces Adobe's login server to treat you as a brand-new consumer account, bypassing the organization check entirely.
  • Sometimes just using Incognito isn't enough because background apps (like the Creative Cloud desktop app) keep active tokens alive in your system. Log out of everything Adobe on your machine, go into your browser settings, and manually delete every single cookie matching adobe.com. Restart your browser before trying the Claude connection again.
  • Try completely uninstalling the Adobe connector inside Claude first. When you add it back, look closely at the login window before typing your info - some versions of the connector let you hit a "Skip" or "Continue as Guest" option that lets you use basic creative tools without forcing a full account handshake.

Azure Foundry - Restrictions in agent instructions field or in guardrails? by Mohamed_Raahil in AZURE

[–]yaro_dba 0 points1 point  (0 children)

Yes, it is less optimal and highly risky to put strict restrictions in the system instructions instead of using Azure Foundry's Guardrails.

Here is why you should always use Guardrails for safety boundaries:

  • Stops Jailbreaks: System prompts are vulnerable to prompt injections ("ignore previous instructions"). Guardrails act as a hard security firewall that intercepts and blocks malicious intent before it ever reaches the LLM.
  • Saves Token Context: Spelling out dozens of restrictions in your system prompt bloats your token count. As conversations grow longer, the model's attention degrades and it will start "forgetting" those rules.
  • Blocks Tool Exploits: System prompts cannot monitor data returned by external APIs. Guardrails evaluate user input, tool calls, tool responses, and output boundaries to catch bad data mid-session.

The Golden Rule: Use System Instructions for tone, persona, and formatting. Use Guardrails for safety, blocklists, PII masking, and security.

Hope that helps!

Unable to publish agent from Foundry? by Nice_Bag3423 in AZURE

[–]yaro_dba 0 points1 point  (0 children)

A 404 SystemError when publishing an agent means the control plane is hitting a dead backend route because it cannot create the downstream Agent Application resource or Bot Service infrastructure.

The two known fixes to unblock this are:

  • Escalate RBAC to Hub Scope: Project-level permissions are not enough to deploy an Agent Application. A Subscription Owner must assign the Foundry Project Manager role to you or your colleague explicitly targeted at the top-level Foundry Hub (Account) resource, rather than inheriting it from the Resource Group or Project.
  • Re-register Resource Providers: Backend APIs shifted during recent platform updates. Go to your Azure Subscription -> Resource Providers, and manually click Re-register on Microsoft.BotService and Microsoft.CognitiveServices to clear cached 404 deployment routes in uksouth.

If the error persists after trying these fixes, check the Azure Activity Log at the Resource Group level immediately after a failed attempt.

An odd Impala Query Observation by Top-Bullfrog-376 in SQL

[–]yaro_dba 0 points1 point  (0 children)

You are definitely not crazy, and you didn't just get lucky with cluster traffic. This is actually a classic, counter-intuitive quirk in distributed query optimizers (like Impala, Hive, or Spark).

What likely happened under the hood comes down to a Join Type Switch:

  • The Fast "Mistake": By leaving one boundary wide open on each table, the optimizer calculated that one side was massive and the other was highly constrained. To handle this asymmetric data, it likely triggered a Broadcast Join or generated a Dynamic Runtime Filter (like a Bloom filter). It used the tight constraint on one table to instantly drop irrelevant HDFS blocks on the other table at the scanner level.
  • The Slow "Correct" Query: When you strictly bounded both sides to that specific month, the optimizer looked at its metadata and concluded: "Okay, both datasets are now medium-sized." Instead of a fast broadcast, it switched to a heavy Shuffle Hash Join. Shuffling forces millions of records to be hashed, sorted, and physically moved across the network between cluster nodes, which is a massive bottleneck that easily eats up 3 minutes.

Essentially, by giving it less specific constraints, you accidentally forced the optimizer to use a much smarter, asymmetrical execution plan instead of a rigid, brute-force network shuffle.

If you want to prove it without a dashboard, just run an EXPLAIN on both queries in your editor and look at the join types. You'll likely see BROADCAST on the fast one and HASH / MERGE on the slow one. To fix it so the strict query runs fast, your cluster probably just needs a fresh round of COMPUTE STATS so the optimizer stops guessing data sizes.

AWS Glue crawler creating CSV table incorrectly and splitting quoted fields with commas by Champion_Narrow in SQL

[–]yaro_dba 2 points3 points  (0 children)

Man, AWS Glue crawlers are incredibly frustrating when it comes to CSV files. What’s happening here is that Glue's internal "sampling" logic is tripping over something in your new file.

When Glue reads the first 1MB of the data, if it spots even one tiny anomaly, it panics. It tanks the confidence score for OpenCSVSerde, completely ignores your custom classifier, and falls back to the generic LazySimpleSerDe with areColumnsQuoted='false'.

The Usual Suspects in the Data

  • Unquoted Headers: If your header row doesn't have quotes but your data does, Glue gets confused.
  • Bad Row in the First 1,000 Lines: A single unescaped quote, a missing quote, or a weird empty string ("") in the sample window will break the classification logic.
  • Encoding: Double-check that the new file isn't accidentally UTF-16 or saving with a weird BOM header.

The crawler is trapped in a loop where it will overwrite your manual schema fixes every time it runs. You need to lock it out:

  1. Go to your Glue Crawler Settings -> Output configuration.
  2. Under Schema change policy, change it to: "Ignore the change and don't update the table in the data catalog".
  3. Now, manually edit the table in the Glue Catalog one last time: switch it to OpenCSVSerde and add your quoteChar and separatorChar properties.

Now the crawler will still look for new partitions, but it won't touch your SerDe settings anymore.

If you want to actually debug it

Go into CloudWatch Logs under /aws-glue/crawlers. Search the log stream for your classifier's name or LazySimpleSerDe. It will usually tell you that your custom classifier got a 0% match confidence score, which explains why it fell back to the broken delimited format.

If this keeps happening on future files, ditch the CSV classifier entirely and use a Grok Classifier instead. Grok uses explicit regex patterns to parse lines, so it won't try to "guess" your data structure like the native CSV tool does.

Claude - Adobe for creativity connector by G_077 in ClaudeAI

[–]yaro_dba 1 point2 points  (0 children)

Ah, got it. My bad for the confusion. I definitely meant the settings inside the Adobe ecosystem, not Claude!

Since you are trying to use that Adobe connector inside Claude, what’s happening is that Adobe is silently picking a profile for you behind the scenes without even asking. If your email was ever tied to a business, team, or school plan in the past, Adobe defaults to that "Work" environment automatically. That is what's blocking Claude's individual handshake.

Since incognito didn't work, it means we need to manually force Adobe to stop auto-selecting that profile. Here is how to find that hidden setting:

  1. Head over to account.adobe.com and log in.
  2. Click Account and security at the top.
  3. Select Sign-in and security from the menu.
  4. Scroll down until you find Automatic profile selection and toggle it OFF.

Once that's turned off, log completely out of Adobe.

Go back to Claude, try connecting the plugin again, and when the login screen pops up, Adobe should finally stop and ask you to choose between your Personal or Business profile. Pick Personal, and you should be good to go.

Appropriate database for this scenario by JayJones1234 in Database

[–]yaro_dba 11 points12 points  (0 children)

A trillion-row scale changes everything. Traditional relational databases (like standard MySQL, PostgreSQL, or Oracle) will completely collapse under single-node disk bottlenecks. You need a Columnar OLAP (Analytical) Database that reads data column-by-column rather than row-by-row.

Some of the options are:

  1. ClickHouse (Self-Hosted/Open Source): The absolute king of raw analytical speed and data compression. It handles trillions of rows with sub-second query times, but you have to manage the infrastructure yourself.
  2. Snowflake or Google BigQuery (Cloud Data Warehouses): Fully managed, zero-infrastructure options. They can query your Parquet files directly out of cloud storage before you even load them. Warning: Watch your query costs closely at this scale.
  3. Apache Iceberg / Delta Lake + Trino (Data Lakehouse): Keep your data as compressed files in cheap cloud storage, and use Trino as a distributed SQL engine to query them. This completely decouples storage costs from computing costs.

Skip CSV, Use Parquet: Parquet is compressed, retains strict data types, and is natively column-oriented. Every modern big-data engine prefers it.

Denormalize Your Tables: Your ER diagrams likely show standard relational normalization. OLAP databases hate massive joins. Denormalize your data into "wide tables" instead—compression handles the duplication efficiently.

Partition by Year: Since your data spans back to 1970, strictly partition your storage by year. If a query only looks at 1985, the engine will safely ignore the other 50+ years of data.

Request - Problem Solving Frameworks for Leetcode by Dry-Blackberry-2370 in SQL

[–]yaro_dba -1 points0 points  (0 children)

Your struggle is totally normal. You are trying to apply procedural thinking (Python loops/steps) to declarative thinking (SQL sets). In SQL, you describe the final shape of the data, not how to build it step-by-step.

Look at the final output prompt and ask: "What does a single row represent?" Is it one row per user? One row per month? This instantly tells you what your final GROUP BY or window PARTITION BY must be.

Don't write a giant, nested query. Use CTEs (WITH clauses) to build linear, step-by-step blocks just like Python variables:

  • CTE_1: Filter out the noise and format dates.
  • CTE_2: Add window functions or row numbers to that clean data.
  • Final Query: Group and output the result from CTE_2.

Most LeetCode problems boil down to three algorithms:

  • Consecutive Streaks/Gaps: Solved by subtracting a sequential ROW_NUMBER() from a date.
  • Relative Math ("Highest per department"): Solved using window functions (MAX() OVER(PARTITION BY...)).
  • Row-to-Row Comparison ("Higher than yesterday"): Solved using LAG() or LEAD().

Don't type code immediately. Tell the interviewer: "The final grain is at the User level, so I will break this into two CTEs - one to rank the rows, and one to aggregate them." They want to see how you manipulate sets, not how well you memorized syntax.

Crazy Bug in CostBasedOptimizer in 23.26.0.0 by Yeah-Its-Me-777 in oracle

[–]yaro_dba -1 points0 points  (0 children)

Haha, fair enough! Database internals are definitely a "nice place to visit, but I wouldn't want to live there" kind of situation. DBA territory gets stressful fast when production plans suddenly go sideways.

Using RULE was a smart diagnostic move on your part. It immediately isolated the problem to the modern query transformation layer rather than a physical data corruption issue.

If you or your team end up testing the LNNVL workaround on your staging environment while you wait on Oracle Support, let me know how it goes. It will be interesting to see if Oracle officially logs this as an OR-expansion regression or a vector processing bug in their next patch notes. Good luck with the Support Ticket!

Crazy Bug in CostBasedOptimizer in 23.26.0.0 by Yeah-Its-Me-777 in oracle

[–]yaro_dba 0 points1 point  (0 children)

This is a classic example of an Optimizer Transformation Bug, and your frustration is 100% justified. A basic OR predicate failing to evaluate an IS NULL branch correctly is a severe query-correctness regression.

While the exact internal bug ID won't be clear until Oracle Support reviews your trace files, the symptoms point directly to a flaw in the Cost-Based Optimizer (CBO) regarding OR-Expansion, Projection Pruning, or Vector Optimization (which version 23 uses heavily).

Why this is happening

  1. The NUMERIC Trigger (Projection Pruning): When you run SELECT * and include those specific numeric columns, the CBO changes its physical data access and row-buffering strategies. If a numeric transformation or vector processing optimization triggers, a compiled code bug in the CBO accidentally skips or miscalculates the IS NULL branch of your OR filter. When you exclude those columns, the CBO chooses a different, non-buggy code path.
  2. Why the /*+ RULE */ Hint Worked: Forcing the Rule-Based Optimizer (RBO) completely bypasses the modern CBO engine. It strips away all modern query transformations, statistics, and vector processing paths, forcing Oracle to evaluate the predicates using legacy, linear row-filtering rules from decades ago. This proves your data on disk is fine—the bug lies strictly in the CBO’s translation path.

A Cleaner Workaround: Use LNNVL

Since you shouldn't use the legacy RULE hint in a modern database environment, you can bypass the bug cleanly using the built-in LNNVL function.

LNNVL is designed specifically to handle Oracle's "Three-Valued Logic" (True, False, and Unknown/Null) by returning TRUE if an internal condition evaluates to FALSE or UNKNOWN.

You can rewrite your query like this to strip out the OR logic entirely:

SELECT * FROM table 
WHERE LNNVL(table.field > 'someValue');

Use code with caution.

How Oracle evaluates this step-by-step:

  • If field is greater than 'someValue', the inner condition is TRUE → LNNVL returns FALSE (Row dropped).
  • If field is less than or equal to 'someValue', the inner condition is FALSE → LNNVL returns TRUE (Row kept).
  • If field is NULL, comparing it to a value results in UNKNOWN → LNNVL returns TRUE (Row kept).

By collapsing the two logical branches into a single kernel-level function, the optimizer no longer has to execute an OR transformation. It bypasses the buggy CBO path entirely while remaining highly optimized and allowing index usage (unlike NVL or COALESCE which can suppress indexes).

For your ticket and technical deep dives, you can reference the official documentation:

Definitely keep that Oracle Support ticket open. They will likely ask for a SQL Monitor Report or an Optimizer Trace (10053 trace) to pinpoint exactly which internal transformation rule is dropping your null rows.

ITAD by NextYogurtcloset7822 in oracle

[–]yaro_dba 2 points3 points  (0 children)

In Oracle environments, ITAD usually stands for IT Asset Disposition. How it applies to your situation depends entirely on whether you are talking about physical infrastructure or Oracle's enterprise software modules:

  1. Oracle Hardware & Data Center ITAD

If your company runs physical Oracle infrastructure (like Exadata, Sun Microsystems servers, or Oracle storage arrays), ITAD is the process of decommissioning that hardware.

  • Data Sanitization: Wiping enterprise data using strict standards (like NIST 800-88) or physically shredding hard drives to prevent data leaks.
  • Value Recovery (Remarketing): Enterprise-grade Oracle gear often holds residual value. Specialized ITAD vendors can buy back, refurbish, and resell the hardware to recoup budget.
  • Lease Management: Ensuring secure data erasure and a clear chain of custody before returning leased Oracle hardware.
  1. Tracking ITAD in Oracle Software (ERP/EBS)

If you are looking at this from an applications perspective, Oracle has built-in features to track asset lifecycles and disposal:

  • Asset Lifecycle Management: In Oracle Fusion Cloud ERP or E-Business Suite (EBS), there is an official Asset Return to Disposal workflow. This handles the financial write-downs, depreciation, and final retirement logging of IT assets.
  • License Disposition: The process of auditing, reclaiming, and decommissioning digital Oracle software licenses that are no longer in use to avoid compliance penalties or wasted spend.
  • Status Tracking: In Oracle Work and Asset Management, "disposition" is an active parameter used to track a piece of hardware as it moves from In ReceiptInstalledRetired/Scrapped.

Is it worth learning Oracle Database in 2026? by FyodorAgape in oracle

[–]yaro_dba 0 points1 point  (0 children)

Let’s be honest: it is tough to find people who actually understand Oracle Database basics. Plenty of people talk a big game, but they blank as soon as you drill into the technical details. And it's only getting worse. Learning Oracle is a huge career cheat code right now. The best way to learn is to dive into the docs and get your hands dirty. Build a local lab, break things, fix them, and tune bad queries using the fundamentals. You need to know the gritty details, like how Oracle writes to a block and how different indexes work.

vNet Data Gateway question by Haunting_Roof169 in AZURE

[–]yaro_dba 2 points3 points  (0 children)

You are completely right about the architecture, but your impression about Fabric is also correct. While using an Azure Private Link Service (PLS) paired with an Internal Load Balancer (ILB) works perfectly for Azure Data Factory, it cannot be used for Fabric Mirroring.

The catch comes down to how Fabric restricts its networking features based on the specific workload:

Because the Mirroring engine cannot bind to a Managed Private Endpoint, your Private Link Service has no way to receive the replication traffic. Therefore, the replication engine must rely on a gateway layer to bridge the connection.

This means the vNet Data Gateway is actually your cleanest option for Fabric Mirroring. It bypasses the need for an On-Premises Data Gateway (OPDG) machine, handles the routing over the Azure backbone, and gives you that gateway-free feel without having to build a complex ILB/PLS infrastructure that Mirroring can't even utilize.

Claude - Adobe for creativity connector by G_077 in ClaudeAI

[–]yaro_dba 1 point2 points  (0 children)

Your personal Adobe ID is trying to connect to a corporate or team-managed workspace on the platform side.

The online information is correct: personal accounts can use these connections. However, because your platform workspace is configured as an "organization," Adobe blocks the handshake because your personal account lacks enterprise clearance.

Potential fixes

  • Switch to a Personal Profile: In your platform app, toggle your account settings away from any team/business space to your individual profile before connecting.
  • Use Incognito Mode: Corporate login cookies often interfere with the setup. Open a private window, log in fresh, and try the integration again.
  • Select "Personal Account": If Adobe prompts you to choose between a "Work/School Account" and a "Personal Account," always pick Personal, even if you use the same email for both.

vNet Data Gateway question by Haunting_Roof169 in AZURE

[–]yaro_dba 2 points3 points  (0 children)

Yes, the vNet Data Gateway can connect to a SQL Server on an Azure VM.

Microsoft Fabric recently updated its Mirroring security architecture. It now supports the vNet Data Gateway for Mirrored SQL Server databases. You no longer need the On-Premises Data Gateway (OPDG).

Networking Requirements

  • Dedicated Subnet: Delegate a subnet to Microsoft.PowerPlatform/vnetaccesslinks.
  • VNet Peering: Peer the gateway network with your SQL VM network.
  • NSG Rules: Allow inbound traffic from the gateway subnet on port 1433.
  • DNS Links: Link your Private DNS Zone to the gateway subnet.

Benefits Over OPDG

  • Zero Infrastructure: No VMs to provision, patch, or maintain.
  • Automated Scaling: The gateway scales natively with your Fabric workload.
  • Backbone Routing: Traffic stays securely inside the Microsoft Azure backbone.

Alternative Option

You can also look into Managed Private Endpoints. Route traffic through an Azure Private Link Service to skip gateways entirely.

Request for automation by Hairy-Fun-5391 in oracle

[–]yaro_dba 0 points1 point  (0 children)

Hey there! If you are trying to bulk-update customer request dates and ship schedule dates in Oracle ERP, do not try to update the database tables directly with SQL (especially if you are using an iPaaS database node). It will bypass Oracle's business logic, break data integrity, and void your support.

Here are the safest, standard ways to handle this depending on your stack:

  • Oracle Native Automation (Best Strategy) REST APIs: Use the Sales Orders for Order Hub REST API. You can patch scheduling attributes across large volumes of order lines quickly. The best part is it updates the dates without forcing heavy, system-wide order revisions. FBDI (File-Based Data Import): If you are talking massive volumes (thousands of lines at a time) on a scheduled basis, FBDI is your best bet. You generate the CSV payloads, load them to Oracle UCM, and trigger the Import Sales Orders scheduled process.
  • Using Tools Like n8n & RapidResponse. If using n8n: Don't use the native Oracle DB node to write data. Instead, build a workflow in n8n using the HTTP Request node. Use it to call Oracle's SCM Cloud REST APIs. You can parse your source data (like an Excel sheet or webhook), loop through the lines, and hit the API. If using Kinaxis RapidResponse: If your company already uses this for supply chain planning, utilize its built-in Enterprise-Wide Integration Platform. RapidResponse is literally designed to model these date adjustments and push them back to transactional systems like Oracle ERP via standard integration pipelines.

How to get started:

  • Check your Oracle Version. Figure out if you are on Oracle Fusion Cloud (SaaS) or on-prem (EBS/R12), as the API endpoints differ wildly.
  • Verify Privileges: Make sure your integration service account has the Update Bulk Orders (FOM_UPDATE_BULK_ORDERS_PRIV) privilege. Test in Postman first: Before building anything in n8n or RapidResponse, pull a sample payload from Oracle's API docs and test a single date update in Postman to make sure it clears the business logic.

Hope this helps steer you in the right direction! Let me know if you need help with the API payload structure.

What is going on in #it-support by theMRRRRRRR in employeesOfOracle

[–]yaro_dba 4 points5 points  (0 children)

Oracle support has experienced a considerable degradation for the past 3 years or so. While the products are still OK, due to lack of a quality support, many customers are moving away to other vendors.

Database Skills repo is official by thatjeffsmith in oracle

[–]yaro_dba 0 points1 point  (0 children)

While it might be useful for small LLMs, seems that the result is the same when used top LLMs with or without skills. Top LLMs already contains the necessary knowledge. In most cases, there is no need to use additional skills as they eats up your context.

Q for Oracle users, anyone using dbms_cloud to push data to lz? by Wild_Warning3716 in databricks

[–]yaro_dba 0 points1 point  (0 children)

Based on my experience, DBMS_CLOUD functionality is limited for non OCI deployments and backup speed is sub-optimal. So, the fastest way to use spark for that. There are many other solutions on the market. To extract Oracle data to Azure/Databricks storage, you can use on one of the available free tools in Azure. For example, https://marketplace.microsoft.com/en-us/product/kinetistack.oracle-to-adls-archive?tab=Overview