# VALIDATE\_ROW procedure

The ***VALIDATE\_ROW*** procedure is invoked when the user makes changes to a field on the user interface for which the *Server Validate On Change* property is enabled. You can perform any business validation or define default values to fields in PL/SQL without writing any Java Code for server-side validations.

```
PROCEDURE VALIDATE_ROW(
 P_ACTIVE IN OUT VARCHAR2
 , P_CREATED_BY IN OUT NUMBER
 , P_CREATION_DATE IN OUT DATE
 , P_DESCRIPTION IN OUT VARCHAR2
 , P_END_DATE IN OUT DATE
 , P_LAST_UPDATED_BY IN OUT NUMBER
 , P_LAST_UPDATE_DATE IN OUT DATE
 , P_LIST_PRICE IN OUT NUMBER
 , P_LONG_DESCRIPTION IN OUT VARCHAR2
 , P_PRODUCT_CODE IN OUT VARCHAR2
 , P_PRODUCT_ID IN OUT NUMBER
 , P_PRODUCT_NAME IN OUT VARCHAR2
 , P_START_DATE IN OUT DATE
 , P_CHANGED_ATTRIBUTE IN OUT VARCHAR2
 , P_CHANGED_ATTRIBUTE_OLD_VALUE IN OUT VARCHAR2
 );
```

All the parameters are of the type *IN OUT*. You can set or change any field values in the *VALIDATE\_ROW* procedure and they get reflected in the UI.

P\_CHANGED\_ATTRIBUTE has the name of the parameter, the changes to which triggered the VALIDATE\_ROW call. For example, if the user changes the *Product Name* field on the user interface, P\_PRODUCT\_NAME will be the changed attribute.

P\_CHANGED\_ATTRIBUTE\_OLD\_VALUE will contain the old value of the parameter that was set before it was updated by the user. If there was no value initially, it is set to NULL. The actual parameter, P\_PRODUCT\_NAME in this case, will have the new value.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.cloudio.io/creating-datasources/working-with-datasources/creating-a-data-source/performing-dml-operations-using-stored-procedures/validate_row-procedure.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
