Skip to content

Commit 0fd7c1e

Browse files
committed
adjusting the infobox into a blockquote
1 parent 35f8a3e commit 0fd7c1e

File tree

1 file changed

+16
-10
lines changed

1 file changed

+16
-10
lines changed

pages/blog/posts/oracle-case-study.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -594,14 +594,14 @@ With all this in place, our React frontend can now create the following form:
594594

595595
![React frontend with input form generated from an annotated Oracle Database 23ai JSON schema.](/img/posts/2025/oracle-case-study/form.webp)
596596

597-
<Infobox> Interestingly, whenever you change the schema annotation in the database, it is immediately reflected inside your browser once you refreshed it. You can try with:
597+
<blockquote>
598+
Interestingly, whenever you change the schema annotation in the database, it is immediately reflected inside your browser once you refreshed it. You can try with:
598599
```sql
599600
ALTER TABLE products MODIFY name ANNOTATIONS (
600601
REPLACE "title" 'Product name'
601602
);
602603
```
603-
</Infobox>
604-
604+
</blockquote>
605605

606606
#### JSON Relational Duality View
607607

@@ -721,7 +721,9 @@ Running the 2 queries above respectively returns the data in JSON format:
721721
|Wooden spatula|4.99|42|
722722
|Other nice product|5|10|
723723

724-
<Infobox>The `_metadata` object will contain additional information such as an `etag` that can be used for [optimistic concurrency control](https://docs.oracle.com/en/database/oracle/oracle-database/23/jsnvu/using-optimistic-concurrency-control-duality-views.html).</Infobox>
724+
<blockquote>
725+
The `_metadata` object will contain additional information such as an `etag` that can be used for [optimistic concurrency control](https://docs.oracle.com/en/database/oracle/oracle-database/23/jsnvu/using-optimistic-concurrency-control-duality-views.html).
726+
</blockquote>
725727

726728
#### POST method
727729

@@ -755,7 +757,9 @@ With 23ai, a check constraint can now be marked as [`PRECHECK`](https://docs.ora
755757

756758
Once a check constraint is marked as `PRECHECK`, you have the choice whether or not to disable the check constraint on the table as the retrieved JSON schema with `dbms_json_schema.describe()` will contain the check constraints as well.
757759

758-
<Danger>We do **NOT** advise to disable check constraints as it would allow inserting bad data into the relational tables directly. The remark about `PRECHECK` constraints is here to provide as much information as possible.</Danger>
760+
<blockquote>
761+
We do **NOT** advise to disable check constraints as it would allow inserting bad data into the relational tables directly. The remark about `PRECHECK` constraints is here to provide as much information as possible.
762+
</blockquote>
759763

760764
```sql
761765
-- Mark check constraints as PRECHECK
@@ -777,8 +781,6 @@ insert into products (name, price, quantity)
777781
values ('Bad product', 0, -1);
778782

779783
commit;
780-
781-
select * from products;
782784
```
783785

784786
### Data Use Case Domains
@@ -1016,7 +1018,9 @@ select p.content.publishedDate.timestamp() + interval '5' day
10161018
from posts p;
10171019
```
10181020

1019-
<Infobox>We use the item method `timestamp()` in the last statement above because otherwise the SQL dot notation would return a SQL `JSON` (by default in 23ai) on which we cannot apply an interval operation. However, because the value is already stored as `TIMESTAMP` inside the binary JSON format, there will be *no conversion* from `JSON` to `timestamp` here.</Infobox>
1021+
<blockquote>
1022+
We use the item method `timestamp()` in the last statement above because otherwise the SQL dot notation would return a SQL `JSON` (by default in 23ai) on which we cannot apply an interval operation. However, because the value is already stored as `TIMESTAMP` inside the binary JSON format, there will be *no conversion* from `JSON` to `timestamp` here.
1023+
</blockquote>
10201024

10211025
Last but not least, by enabling type casting, native SQL data type checks are also performed ensuring 100% fidelity between stored binary values in the encoded JSON and SQL data types. As a result, we can store not just the standard JSON data types but also the SQL data types inside the encoded binary JSON such as `NUMBER`, `DATE`, `TIMESTAMP`, `TIMESTAMP WITH TIME ZONE`, `INTERVAL`, `RAW`, `VECTOR`, etc.
10221026

@@ -1101,15 +1105,17 @@ Results:
11011105
| {<br/>&nbsp;&nbsp;"firstName": "Bob",<br/>&nbsp;&nbsp;"address": "Paris",<br/>&nbsp;&nbsp;"vat": false<br/>} |Paris|Bob|false|null|
11021106
| {<br/>&nbsp;&nbsp;"firstName": "Bob",<br/>&nbsp;&nbsp;"address": "Paris",<br/>&nbsp;&nbsp;"vat": false,<br/>&nbsp;&nbsp;"tableEvolve": true<br/>} |Paris|Bob|false|true|
11031107

1104-
<Infobox>The trigger executes asynchronously, hence not delaying DML response times, however, because of it being asynchronous, it may take a second before you will see the new virtual column.</Infobox>
1108+
<blockquote>
1109+
The trigger executes asynchronously, hence not delaying DML response times, however, because of it being asynchronous, it may take a second before you will see the new virtual column.
1110+
</blockquote>
11051111

11061112
## Conclusion
11071113

11081114
We have shown lots of features inside the Oracle Database 23ai which provide powerful capabilities to have JSON data coexist with relational data, and JSON schema clearly strengthens this even more. But this is only the beginning and as you discover more and more features that work the same way regardless of the data model, or that allow going back and forth from one model to another, you'll understand the true value of a converged database which has one goal: removing barriers, simplifying architecture and making developers more productive!
11091115

11101116
![Oracle Database 23ai is a converged database now supporting JSON schema.](/img/posts/2025/oracle-case-study/converged_database.webp)
11111117

1112-
Lean more:
1118+
Learn more:
11131119
- [Oracle Database 23ai `DBMS_JSON_SCHEMA` PL/SQL package](https://docs.oracle.com/en/database/oracle/oracle-database/23/arpls/DBMS_JSON_SCHEMA.html#GUID-89B9C48D-D905-482C-A78C-8DB314EDF072)
11141120
- [Oracle Database 23ai JSON Developer Guide](https://docs.oracle.com/en/database/oracle/oracle-database/23/adjsn/index.html)
11151121
- [Getting started with Oracle Database 23ai](https://medium.com/db-one/oracle-database-download-install-tutorial-my-getting-started-guide-044925c10ca2)

0 commit comments

Comments
 (0)