{"id":1545,"date":"2017-11-26T10:59:58","date_gmt":"2017-11-26T03:59:58","guid":{"rendered":"https:\/\/oracletutorial.com\/?page_id=1545"},"modified":"2025-05-24T19:11:14","modified_gmt":"2025-05-25T02:11:14","slug":"plsql-record","status":"publish","type":"page","link":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/","title":{"rendered":"PL\/SQL Record"},"content":{"rendered":"\r\n<p><strong>Summary<\/strong>: In this tutorial, you will learn about the PL\/SQL record and how to use records to manage your program data effectively.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='introduction-to-plsql-record'>Introduction to PL\/SQL Record <a href=\"#introduction-to-plsql-record\" class=\"anchor\" id=\"introduction-to-plsql-record\" title=\"Anchor for Introduction to PL\/SQL Record\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>A PL\/SQL record is a composite data structure consisting of multiple fields, each with its own value.<\/p>\r\n\r\n\r\n\r\n<p>The following picture shows an example record that includes first name, last name, email, and phone number:<\/p>\r\n\r\n\r\n\r\n<figure class=\"wp-block-image\"><img loading=\"lazy\" decoding=\"async\" width=\"652\" height=\"93\" class=\"wp-image-1546\" title=\"PL\/SQL Record\" src=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record.png\" alt=\"PL\/SQL Record\" srcset=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record.png 652w, https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record-300x43.png 300w\" sizes=\"auto, (max-width: 652px) 100vw, 652px\" \/><\/figure>\r\n\r\n\r\n\r\n<p>PL\/SQL record helps you simplify your code by shifting from field-level to record-level operations.<\/p>\r\n\r\n\r\n\r\n<p>PL\/SQL has three types of records:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>Table-based records<\/li>\r\n\r\n\r\n\r\n<li>Cursor-based records<\/li>\r\n\r\n\r\n\r\n<li>Programmer-defined records<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>Before using a record, you must declare it.<\/p>\r\n\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='declaring-records'>Declaring records <a href=\"#declaring-records\" class=\"anchor\" id=\"declaring-records\" title=\"Anchor for Declaring records\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>You define and declare records in the declaration section of a <a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-anonymous-block\/\">block<\/a> or via package specification.<\/p>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id='table-based-record'>Table-based record <a href=\"#table-based-record\" class=\"anchor\" id=\"table-based-record\" title=\"Anchor for Table-based record\">#<\/a><\/h3>\r\n\r\n\r\n\r\n<p>To declare a table-based record, you use the <code>%ROWTYPE<\/code> attribute with a table name. A table-based record has each field corresponding to a column in a table.<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n   record_name <span class=\"hljs-built_in\">table_name<\/span><span class=\"hljs-meta\">%ROWTYPE<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>The following example declares a record named <code>r_contact<\/code> with the same structure as the <code>contacts<\/code> table in the <a href=\"https:\/\/www.oracletutorial.com\/getting-started\/oracle-sample-database\/\">sample database<\/a>:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n   r_contact contacts<span class=\"hljs-meta\">%ROWTYPE<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id='cursor-based-record'>Cursor-based record <a href=\"#cursor-based-record\" class=\"anchor\" id=\"cursor-based-record\" title=\"Anchor for Cursor-based record\">#<\/a><\/h3>\r\n\r\n\r\n\r\n<p>A cursor-based record has each field corresponding to a column or alias in the <a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-cursor\/\">cursor<\/a> <code><a href=\"https:\/\/www.oracletutorial.com\/oracle-basics\/oracle-select\/\">SELECT<\/a><\/code> statement.<\/p>\r\n\r\n\r\n\r\n<p>To declare a cursor-based record, you use the <code>%ROWTYPE<\/code> attribute with an explicit cursor as shown below:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n    record_name cursor_name<span class=\"hljs-meta\">%ROWTYPE<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>The following example declares a record with the same structure as an explicit cursor:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n    <span class=\"hljs-keyword\">CURSOR<\/span> c_contacts <span class=\"hljs-keyword\">IS<\/span>\r\n        <span class=\"hljs-keyword\">SELECT<\/span> first_name, last_name, phone\r\n        <span class=\"hljs-keyword\">FROM<\/span> contacts;\r\n    r_contact c_contacts<span class=\"hljs-meta\">%ROWTYPE<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>In this example:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>First, declare an explicit cursor that fetches data from the <code>first_name<\/code>, <code>last_name<\/code>, and <code>phone<\/code> columns of the <code>contacts<\/code> table.<\/li>\r\n\r\n\r\n\r\n<li>Second, declare a record named <code>r_contact<\/code> whose structure is the same as the <code>c_contacts<\/code> cursor.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<h3 class=\"wp-block-heading\" id='programmer-defined-record'>Programmer-defined record <a href=\"#programmer-defined-record\" class=\"anchor\" id=\"programmer-defined-record\" title=\"Anchor for Programmer-defined record\">#<\/a><\/h3>\r\n\r\n\r\n\r\n<p>The table-based and cursor-based records are good enough when creating records based on existing structures.<\/p>\r\n\r\n\r\n\r\n<p>If you want to create a record whose structure is not based on the existing ones, then you use a programmer-defined record.<\/p>\r\n\r\n\r\n\r\n<p>To declare a programmer-defined record, you use the following steps:<\/p>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>First, define a record type that contains the structure you want in your record.<\/li>\r\n\r\n\r\n\r\n<li>Second, declare a record based on the record type.<\/li>\r\n<\/ul>\r\n\r\n\r\n\r\n<p>The following shows the syntax for defining a record type:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">TYPE<\/span> record_type <span class=\"hljs-keyword\">IS<\/span> <span class=\"hljs-type\">RECORD<\/span> (\r\n    field_name1 data_type1 &#91;&#91;<span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">NULL<\/span>] := | <span class=\"hljs-keyword\">DEFAULT<\/span> default_value],\r\n    field_name2 data_type2 &#91;&#91;<span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">NULL<\/span>] := | <span class=\"hljs-keyword\">DEFAULT<\/span> default_value],\r\n    ...\r\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>To declare a record based on the predefined record type, you use the following syntax:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\">record_name record_type;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>The following example defines a record type whose name is <code>r_customer_contacts<\/code> and a record whose type is <code>r_customer_contact_t<\/code>:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n    <span class=\"hljs-comment\">-- Define a record type<\/span>\r\n    <span class=\"hljs-keyword\">TYPE<\/span> r_customer_contact_t <span class=\"hljs-keyword\">IS<\/span> <span class=\"hljs-type\">RECORD<\/span>\r\n    (\r\n       customer_name customers.name<span class=\"hljs-meta\">%TYPE<\/span>,\r\n       first_name    contacts.first_name<span class=\"hljs-meta\">%TYPE<\/span>,\r\n       last_name     contacts.last_name<span class=\"hljs-meta\">%TYPE<\/span> \r\n    );\r\n    <span class=\"hljs-comment\">-- Declare a record<\/span>\r\n    r_customer_contacts r_customer_contact_t;\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n  <span class=\"hljs-keyword\">NULL<\/span>;\r\n<span class=\"hljs-keyword\">END<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='referencing-a-records-field'>Referencing a record&#8217;s field <a href=\"#referencing-a-records-field\" class=\"anchor\" id=\"referencing-a-records-field\" title=\"Anchor for Referencing a record&#039;s field\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>You reference a field in a record via the dot notation as shown below:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\">record_name.field_name<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>For example, to reference the <code>first_name<\/code> field of the <code>r_contact<\/code> record, you use the following expression:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\">r_contact.first_name<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='assigning-records'>Assigning records <a href=\"#assigning-records\" class=\"anchor\" id=\"assigning-records\" title=\"Anchor for Assigning records\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>You can assign a record to another record of the same type, for example:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\">r_contact1 := r_contact2;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>But you cannot compare two records of the same type via a comparison operator. The following example is an invalid comparison:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">IF<\/span> r_contact1 = r_contact2 <span class=\"hljs-keyword\">THEN<\/span>\r\n    ...    \r\n<span class=\"hljs-keyword\">END<\/span> <span class=\"hljs-keyword\">IF<\/span>; <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>In this case, you need to compare individual fields of the record instead:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">IF<\/span> r.contact1.first_name = r.contact2.first_name <span class=\"hljs-keyword\">AND<\/span> \r\n    r.contact1.last_name = r.contact2.last_name <span class=\"hljs-keyword\">AND<\/span>\r\n    r.contact1.phone = r.contact2.phone <span class=\"hljs-keyword\">THEN<\/span>\r\n    ...\r\n<span class=\"hljs-keyword\">END<\/span> <span class=\"hljs-keyword\">IF<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>You can assign a value to the individual field of a record, for example:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\">r_contact.first_name := <span class=\"hljs-string\">'John'<\/span>;\r\nr_contact.last_name := <span class=\"hljs-string\">'Doe'<\/span>;\r\nr_contact.phone := <span class=\"hljs-string\">'(408-654-2865)'<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>You can use <code><a href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-select-into\/\">SELECT INTO<\/a><\/code> a whole record (or individual fields):<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">SELECT<\/span>\r\n  first_name, last_name, phone\r\n<span class=\"hljs-keyword\">INTO<\/span>\r\n  r_contact\r\n<span class=\"hljs-keyword\">FROM<\/span>\r\n  contacts\r\n<span class=\"hljs-keyword\">WHERE<\/span>\r\n  contact_id = <span class=\"hljs-number\">100<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>You can <code>FETCH INTO<\/code> a whole record or individual fields:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-comment\">-- fetch a whole record<\/span>\r\n<span class=\"hljs-keyword\">FETCH<\/span> cur_contacts <span class=\"hljs-keyword\">INTO<\/span> r_contact;\r\n\r\n<span class=\"hljs-comment\">-- fetch individual fields<\/span>\r\n<span class=\"hljs-keyword\">FETCH<\/span>\r\n  cur_contacts\r\n<span class=\"hljs-keyword\">INTO<\/span>\r\n  r_contact.first_name, \r\n  r_contact.last_name, \r\n  r_contact.phone;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='records-and-insert-update-statements'>Records and INSERT \/ UPDATE statements <a href=\"#records-and-insert-update-statements\" class=\"anchor\" id=\"records-and-insert-update-statements\" title=\"Anchor for Records and INSERT \/ UPDATE statements\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>You can <a href=\"https:\/\/www.oracletutorial.com\/oracle-basics\/oracle-insert\/\">insert a new row<\/a> into a table using a <code>%ROWTYPE<\/code> record without having to specify each field. The following statement <a href=\"https:\/\/www.oracletutorial.com\/oracle-basics\/oracle-create-table\/\">creates a new table<\/a> named <code>persons<\/code>\u00a0for demonstration:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span> persons  (\r\n    person_id NUMBER <span class=\"hljs-keyword\">GENERATED<\/span> <span class=\"hljs-keyword\">BY<\/span> <span class=\"hljs-keyword\">DEFAULT<\/span> <span class=\"hljs-keyword\">AS<\/span> <span class=\"hljs-keyword\">IDENTITY<\/span>,\r\n    first_name VARCHAR2( <span class=\"hljs-number\">50<\/span> ) <span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">NULL<\/span>, \r\n    last_name VARCHAR2( <span class=\"hljs-number\">50<\/span> ) <span class=\"hljs-keyword\">NOT<\/span> <span class=\"hljs-keyword\">NULL<\/span>,\r\n    <span class=\"hljs-keyword\">primary key<\/span> (person_id)\r\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>The following block <a href=\"https:\/\/www.oracletutorial.com\/oracle-basics\/oracle-insert\/\">inserts<\/a> a new row into the <code>persons<\/code> table using a <code>%ROWTYPE<\/code> record:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n  r_person persons<span class=\"hljs-meta\">%ROWTYPE<\/span>;\r\n\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n  <span class=\"hljs-comment\">-- assign values to person record<\/span>\r\n  r_person.person_id  := <span class=\"hljs-number\">1<\/span>;\r\n  r_person.first_name := <span class=\"hljs-string\">'John'<\/span>;\r\n  r_person.last_name  := <span class=\"hljs-string\">'Doe'<\/span>;\r\n\r\n  <span class=\"hljs-comment\">-- insert a new person<\/span>\r\n  <span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> persons <span class=\"hljs-keyword\">VALUES<\/span> r_person;\r\n<span class=\"hljs-keyword\">END<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<p>To <a href=\"https:\/\/www.oracletutorial.com\/oracle-basics\/oracle-update\/\">update<\/a> a row from a <code>%ROWTYPE<\/code> record, you use the <code>SET ROW<\/code> keywords as shown in the following example:<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n  r_person persons<span class=\"hljs-meta\">%ROWTYPE<\/span>;\r\n\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n  <span class=\"hljs-comment\">-- get person data of person id 1<\/span>\r\n  <span class=\"hljs-keyword\">SELECT<\/span> * <span class=\"hljs-keyword\">INTO<\/span> r_person \r\n  <span class=\"hljs-keyword\">FROM<\/span> persons \r\n  <span class=\"hljs-keyword\">WHERE<\/span> person_id = <span class=\"hljs-number\">1<\/span>;\r\n\r\n  <span class=\"hljs-comment\">-- change the person's last name<\/span>\r\n  r_person.last_name  := <span class=\"hljs-string\">'Smith'<\/span>;\r\n\r\n  <span class=\"hljs-comment\">-- update the person<\/span>\r\n  <span class=\"hljs-keyword\">UPDATE<\/span> persons\r\n  <span class=\"hljs-keyword\">SET<\/span> <span class=\"hljs-keyword\">ROW<\/span> = r_person\r\n  <span class=\"hljs-keyword\">WHERE<\/span> person_id = r_person.person_id;\r\n<span class=\"hljs-keyword\">END<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='nested-record'>Nested record <a href=\"#nested-record\" class=\"anchor\" id=\"nested-record\" title=\"Anchor for Nested record\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<p>A record can contain a field that is another record. Nesting records is a powerful way to structure program data and hide complexity in your code.<\/p>\r\n\r\n\r\n\r\n<p>The following example declares a record type named <code>address<\/code>. Then the record type <code>customer<\/code> has two fields <code>ship_to<\/code> and <code>bill_to<\/code> which are based on the address record type.<\/p>\r\n\r\n\r\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"PostgreSQL SQL dialect and PL\/pgSQL\" data-shcb-language-slug=\"pgsql\"><span><code class=\"hljs language-pgsql\"><span class=\"hljs-keyword\">DECLARE<\/span>\r\n  <span class=\"hljs-keyword\">TYPE<\/span> address <span class=\"hljs-keyword\">IS<\/span> <span class=\"hljs-type\">RECORD<\/span> (\r\n    street_name VARCHAR2(<span class=\"hljs-number\">255<\/span>),\r\n    city VARCHAR2(<span class=\"hljs-number\">100<\/span>),\r\n    state VARCHAR2(<span class=\"hljs-number\">100<\/span>),\r\n    postal_code <span class=\"hljs-type\">VARCHAR<\/span>(<span class=\"hljs-number\">10<\/span>),\r\n    country VARCHAR2(<span class=\"hljs-number\">100<\/span>)\r\n  );\r\n  <span class=\"hljs-keyword\">TYPE<\/span> customer <span class=\"hljs-keyword\">IS<\/span> <span class=\"hljs-type\">RECORD<\/span>(\r\n      customer_name VARCHAR2(<span class=\"hljs-number\">100<\/span>),\r\n      ship_to address,\r\n      bill_to address\r\n  );\r\n  r_one_time_customer customer;\r\n<span class=\"hljs-keyword\">BEGIN<\/span>\r\n\r\n  r_one_time_customer.customer_name := <span class=\"hljs-string\">'John Doe'<\/span>;\r\n  <span class=\"hljs-comment\">-- assign address<\/span>\r\n  r_one_time_customer.ship_to.street_name := <span class=\"hljs-string\">'4000 North 1st street'<\/span>;\r\n  r_one_time_customer.ship_to.city := <span class=\"hljs-string\">'San Jose'<\/span>;\r\n  r_one_time_customer.ship_to.state := <span class=\"hljs-string\">'CA'<\/span>;\r\n  r_one_time_customer.ship_to.postal_code := <span class=\"hljs-string\">'95134'<\/span>;\r\n  r_one_time_customer.ship_to.country := <span class=\"hljs-string\">'USA'<\/span>;\r\n  <span class=\"hljs-comment\">-- bill-to address is same as ship-to address<\/span>\r\n  r_one_time_customer.bill_to := r_one_time_customer.ship_to;\r\n<span class=\"hljs-keyword\">END<\/span>;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PostgreSQL SQL dialect and PL\/pgSQL<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">pgsql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\r\n\r\n\r\n<h2 class=\"wp-block-heading\" id='summary'>Summary <a href=\"#summary\" class=\"anchor\" id=\"summary\" title=\"Anchor for Summary\">#<\/a><\/h2>\r\n\r\n\r\n\r\n<ul class=\"wp-block-list\">\r\n<li>A record is a composite data structure holding multiple fields.<\/li>\r\n\r\n\r\n\r\n<li>Table-based records map fields with table columns.<\/li>\r\n\r\n\r\n\r\n<li>Cursor-based records match fields to columns or aliases in the cursor&#8217;s select statement.<\/li>\r\n\r\n\r\n\r\n<li>Programmer-defined records require a record type definition before declaration.<\/li>\r\n\r\n\r\n\r\n<li>Use dot notation (<code>record_name.field_name<\/code>) to access fields in records.<\/li>\r\n\r\n\r\n\r\n<li>Assign the records with the same type.<\/li>\r\n\r\n\r\n\r\n<li>Comparing records of the same type requires field-by-field evaluation.<\/li>\r\n\r\n\r\n\r\n<li>Nest records to form a complex data structure.<\/li>\r\n<\/ul>\r\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"1545\"\n\t\t\t\tdata-post-url=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/\"\n\t\t\t\tdata-post-title=\"PL\/SQL Record\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"1545\"\n\t\t\t\tdata-post-url=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/\"\n\t\t\t\tdata-post-title=\"PL\/SQL Record\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial introduces you to the PL\/SQL record and how to use records to manage your program data effectively.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":1418,"menu_order":20,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1545","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PL\/SQL Record<\/title>\n<meta name=\"description\" content=\"This tutorial introduces you to the PL\/SQL Record and how to use records to manage your program data effectively.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PL\/SQL Record\" \/>\n<meta property=\"og:description\" content=\"This tutorial introduces you to the PL\/SQL Record and how to use records to manage your program data effectively.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/\" \/>\n<meta property=\"og:site_name\" content=\"Oracle Tutorial\" \/>\n<meta property=\"article:modified_time\" content=\"2025-05-25T02:11:14+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record.png\" \/>\n\t<meta property=\"og:image:width\" content=\"652\" \/>\n\t<meta property=\"og:image:height\" content=\"93\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/\",\"url\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/\",\"name\":\"PL\\\/SQL Record\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.oracletutorial.com\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/plsql-record.png\",\"datePublished\":\"2017-11-26T03:59:58+00:00\",\"dateModified\":\"2025-05-25T02:11:14+00:00\",\"description\":\"This tutorial introduces you to the PL\\\/SQL Record and how to use records to manage your program data effectively.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.oracletutorial.com\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/plsql-record.png\",\"contentUrl\":\"https:\\\/\\\/www.oracletutorial.com\\\/wp-content\\\/uploads\\\/2017\\\/11\\\/plsql-record.png\",\"width\":652,\"height\":93,\"caption\":\"PL\\\/SQL Record\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/plsql-record\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.oracletutorial.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PL\\\/SQL Tutorial\",\"item\":\"https:\\\/\\\/www.oracletutorial.com\\\/plsql-tutorial\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"PL\\\/SQL Record\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.oracletutorial.com\\\/#website\",\"url\":\"https:\\\/\\\/www.oracletutorial.com\\\/\",\"name\":\"Oracle Tutorial\",\"description\":\"Oracle Tutorial\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.oracletutorial.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PL\/SQL Record","description":"This tutorial introduces you to the PL\/SQL Record and how to use records to manage your program data effectively.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/","og_locale":"en_US","og_type":"article","og_title":"PL\/SQL Record","og_description":"This tutorial introduces you to the PL\/SQL Record and how to use records to manage your program data effectively.","og_url":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/","og_site_name":"Oracle Tutorial","article_modified_time":"2025-05-25T02:11:14+00:00","og_image":[{"width":652,"height":93,"url":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record.png","type":"image\/png"}],"twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/","url":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/","name":"PL\/SQL Record","isPartOf":{"@id":"https:\/\/www.oracletutorial.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/#primaryimage"},"image":{"@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/#primaryimage"},"thumbnailUrl":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record.png","datePublished":"2017-11-26T03:59:58+00:00","dateModified":"2025-05-25T02:11:14+00:00","description":"This tutorial introduces you to the PL\/SQL Record and how to use records to manage your program data effectively.","breadcrumb":{"@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/#primaryimage","url":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record.png","contentUrl":"https:\/\/www.oracletutorial.com\/wp-content\/uploads\/2017\/11\/plsql-record.png","width":652,"height":93,"caption":"PL\/SQL Record"},{"@type":"BreadcrumbList","@id":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/plsql-record\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.oracletutorial.com\/"},{"@type":"ListItem","position":2,"name":"PL\/SQL Tutorial","item":"https:\/\/www.oracletutorial.com\/plsql-tutorial\/"},{"@type":"ListItem","position":3,"name":"PL\/SQL Record"}]},{"@type":"WebSite","@id":"https:\/\/www.oracletutorial.com\/#website","url":"https:\/\/www.oracletutorial.com\/","name":"Oracle Tutorial","description":"Oracle Tutorial","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.oracletutorial.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages\/1545","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/comments?post=1545"}],"version-history":[{"count":0,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages\/1545\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/pages\/1418"}],"wp:attachment":[{"href":"https:\/\/www.oracletutorial.com\/wp-json\/wp\/v2\/media?parent=1545"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}