What is the equivalent command to SET DEFINE OFF Of Oracle in PostgreSQL

It's not needed because psql doesn't do substitution the way sqlplus does it.
That would help if you'd explain what you want to achieve, not everybody knows Oracle.
I took the liberty of looking at what that does (turns of client-side variable interpolation mode) - why do you think you need an equivalent in PostgreSQL? While psql has variables the way they work is completely different.

About Community

Ranked by Size
Settable global parameter.
New value of parameter.
The possible variables and allowed values are:
use ISO 8601-style dates and times
use Oracle/Ingres-style dates and times
use traditional Postgres format
use dd/mm/yyyy for numeric date representations.
use mm/dd/yyyy for numeric date representations.
use dd.mm.yyyy for numeric date representations.
same as 'NonEuropean'
restores the default values ('US,Postgres')
Date format initialization my be done by:
The variables in globals.c which can be changed are:
The possible values for timezone depends on your operating system. For example on Linux /usr/lib/zoneinfo contains the database of timezones.
Here are some valid values for timezone:
set the timezone for California
set time zone for Portugal.
set time zone for Italy.
set time zone to your local timezone (value of the TZ environment variable).
If an invalid time zone is specified, the time zone becomes GMT (on most systems anyway).
A frontend which uses libpq may be initialized by setting the PGTZ environment variable.
The second syntax shown above, allows one to set the timezone with a syntax similar to SQL92 SET TIME ZONE . The LOCAL keyword is just an alternate form of DEFAULT for SQL92 compatibility.
There are also several internal or optimization parameters which can be specified by the SET command:
Sets the default cost of a heap scan for use by the optimizer.
Set the cost of a heap scan to the specified floating point value.
Sets the cost of a heap scan to the default value.
The frontend may be initialized by setting the PGCOSTHEAP environment variable.
Sets the default cost of an index scan for use by the optimizer.
Set the cost of an index scan to the specified floating point value.
Sets the cost of an index scan to the default value.
The frontend may be initialized by setting the PGCOSTINDEX environment variable.
Sets the threshold for using the genetic optimizer algorithm.
enables the genetic optimizer algorithm for statements with 8 or more tables.
Takes an integer argument to enable the genetic optimizer algorithm for statements with # or more tables in the query.
disables the genetic optimizer algorithm.
Equivalent to specifying SET GEQO='on'
This algorithm is on by default, which used GEQO for statements of eight or more tables. (See the chapter on GEQO in the Programmer's Guide for more information).
The frontend may be initialized by setting PGGEQO environment variable.
Determines whether right-hand plan evaluation is allowed:
enables right-hand evaluation of plans.
disables right-hand evaluation of plans.
Equivalent to specifying SET R_PLANS='off' .
It may be useful when joining big relations with small ones. This algorithm is off by default. It's not used by GEQO anyway.
The frontend may be initialized by setting the PGRPLANS environment variable.
Key Set Query Optimizer forces the query optimizer to optimize repetative OR clauses such as generated by MicroSoft Access :
enables this optimization.
disables this optimization.
Equivalent to specifying SET KSQO='off' .
Sets the number of rows returned by a query.
Maximum number of rows to return for a query. The default is to allow an unlimited number of rows.
Sets the maximum number of rows returned by a query to # .
Sets the maximum number of rows returned by a query to be unlimited.
By default, there is no limit to the number of rows returned by a query.
Message returned if successfully.
If the command fails to set variable.
Description
SET will modify configuration parameters for variable during a session.
Current values can be obtained using SHOW , and values can be restored to the defaults using RESET . Parameters and values are case-insensitive. Note that the value field is always specified as a string, so is enclosed in single-quotes.
SET TIME ZONE changes the session's default time zone offset. A SQL-session always begins with an initial default time zone offset. The SET TIME ZONE statement is used to change the default time zone offset for the current SQL session.
The SET variable statement is a Postgres language extension.
Refer to SHOW and RESET to display or reset the current values.
AWS Database Blog
Postgresql psql client tool commands equivalent to oracle sql*plus client tool.
When you’re working as an application developer or database administrator, you often need to deal with SQL statements to explore your database for various reasons. You need to connect to the database to build or run the SQL code, generate reports, and diagnose application problem related to the database.
There are various ways to connect to a database. You can directly log in to the database server host and use a utility to manage the database, or you can use a desktop GUI or CLI tools or web browser-based interface to interact with the database server remotely.
In general, when you connect to a database server using any database command line client tool, you run two types of commands on the CLI:
- Perform calculations on, store, and print from query results
- Set the display width for data
- Customize HTML formatting
- Enable or disable printing of column headings
- Set the number of lines per page
- Examine table and object definitions
- Commands processed by database server, often known as server commands or database commands .
PostgreSQL has become the preferred open-source relational database for many enterprise developers and startups, and powers leading business and mobile applications. PostgreSQL is considered to be the primary open-source database choice when migrating from commercial databases such as Oracle. AWS offers services that make PostgreSQL database deployments easy to set up, manage, and scale for the cloud in a cost-efficient manner. These services are Amazon Relational Database Service (Amazon RDS) for PostgreSQL and Amazon Aurora with PostgreSQL compatibility . After you migrated your databases from Oracle to PostgreSQL, most common challenges that any developer or DBA face during the usage of PostgreSQL is with PSQL client as they are used to Oracle SQL*Plus client tool.
In this post, we discuss SQL*Plus (mostly applicable for 12c and 19c version), which is an Oracle command line client tool, and psql (higher than 9.6 Version), which is a PostgreSQL command line client tool. We also provide Oracle SQL*Plus equivalent commands in PostgreSQL psql.
The following diagram illustrates the process of the meta and database commands of SQL*Plus and PSQL client. The meta commands are processed by the client tool itself, and database commands are processed by the database server.

Oracle SQL*Plus
SQL*Plus is an interactive and batch query tool that’s installed with every Oracle database installation as well as SQL*Plus Instant Client. It has a command line user interface and its own commands and environment, and it provides access to the Oracle database. It enables you to do the following:
- Connect to an Oracle database
- Enter and run SQL commands and PL/SQL blocks
- Format and print query results using meta commands
- Run administrative commands like database startup and shutdown
- Run OS commands within the SQL*Plus CLI prompt
- Enter SQL*Plus commands to configure the SQL*Plus environment
You can use SQL*Plus to generate reports interactively and output the results to a text file or on screen, or to an HTML file for browsing on the internet. You can generate reports dynamically using the HTML output facility of SQL*Plus.
SQL*Plus installation
There are various ways you can install Oracle Database client tools for different operating systems, versions, and features. For our SQL*Plus use case only, Oracle Instant Client is a good choice.
When installing Oracle Instance Client, we need the Basic and SQL*Plus package to establish a SQL*Plus session with Oracle Database.
After you install the Oracle Instant Client base on your OS type, you need to set some environment variables. For more information, refer to Install Oracle Database Instant Client .
After a successful installation, you may connect to the database using the following command:
You can also use various options (like Silent login, compatibility, and markup) during connection initialization. For a full list, refer to Options .
SQL*Plus meta commands
SQL*Plus meta or SET commands are different than the normal SQL standard commands used to query the data. These SET commands set a system variable to alter the SQL*Plus environment settings for your current session. These are used to put into shape in terms of line size, page size, and so on. You can display all the SET commands by running the help set command as follows:
You can enter a hyphen at the end of the line to continue a long SQL*Plus command and press Enter . If you want, you can type a space before typing the hyphen. SQL*Plus displays a right angle-bracket ( > ) as a prompt for each additional line.
You don’t need to end a SQL*Plus command with a semicolon. When you finish entering the command, you can press Enter . If you want, however, you can enter a semicolon at the end of a SQL*Plus command.
For more information about SET system variables, SET System Variable Summary .
PostgreSQL psql
The primary front end for PostgreSQL is the psql command line client, which you can use to enter SQL queries directly or run them from a file. In addition, psql provides several meta commands and various shell-like features to facilitate writing scripts and automating a wide variety of tasks; for example, tab completion of object names and SQL syntax.
Installation
You can download the psql command line for different operating systems using the PostgreSQL download libraries .
On Amazon Linux 2, we can use the following commands to download the psql command line tool:
Connection strings
With psql, we have multiple ways to specify connection options, such as key-values, command text, or as per connection URI.
You can connect the database using psql client using the following command. By default, you will need to provide the password.
For password as credentials, you can use the PGPASSWORD environment to hold the password. It will not prompt for password.
However, it is recommended to use .pgpass file. It resides in operating system user’s home directory.
For host, port, and user, we have the following connection options:
- -h, –host – HOSTNAME is the database server host or socket directory (the default is local socket)
- -p, –port – PORT is the database server port (the default is 5432)
- -U, –username – USERNAME is the database user name (the default is OS User )
- – d, –database – DBNAME is the database name (the default is same as USERNAME )
- -w, –no-password – Never prompt for password
- – W, –password – Force a password prompt (should happen automatically)
For more information, see Connection Strings .
PSQL meta commands
Anything that you enter in psql that begins with an unquoted backslash is a psql meta command that is processed by psql itself. These commands make psql more useful for administration or scripting. Meta commands are often called slash or backslash commands .
In general, two types of meta commands are used in psql:
- \set – Sets the psql variable name to value […]
- \pset – Sets options affecting the output of query result tables
Note that set and \set commands are different in psql. SET is run on the database server and \set is on the client
Comparison of SQL*Plus and psql meta commands
This section compares the meta commands of SQL*Plus and psql, which we have categorized as follows:
Format commands
Input and output commands, information display commands, system commands.
Note that we have used a small subset of psql features to compare with sqlplus client. However, you can see more features in “psql specific features” section.
The following table contains the commands that help you format the SQL query output. You can set the format of the results the way you want.
The following table contains the input and output commands, which allow you to transfer the data to and from the database in different ways.
The following table contains the commands that display information about the database objects and SQL*Plus or psql itself.
The following table contains the commands to get the general, systematic functions of SQL*Plus and psql.
Convert meta commands using the AWS Schema Conversion Tool
The AWS Schema Conversion Tool (AWS SCT) helps us convert an Oracle-based SQL script that consists of some of SQL*Plus features to PostgreSQL compatible as per the psql command line.
For more information about converting meta commands, refer to Analyzing and converting your SQL code using the AWS SCT .
The following screenshot is an example of a SQL*Plus command supported as part of conversion to PostgreSQL as psql command line compatible.

PSQL specific features
The following are some psql specific features when compared to sqlplus .
This runs an SQL COPY command (server command), but instead of the server reading or writing the specified file, psql reads or writes the file and routes the data between the server and the local file system using the privileges of the local user. This allows a user to bulk load data into the database without requiring superuser privileges.
The following is an example of using \copy :
In Oracle, we need to use different tool for this
- Database table to file ( set sqlformat csv )
- File to Database table : sqlloader / external table
- Database table to other Database table using COPY command
\x – extended output
It is difficult to read the output of a query with a lot of columns in fetch list. The \x sets extended formatting for the query results as shown in the following output:
UP and DOWN keys
You can use up and down arrows to scroll through the command history. Up and down arrow keys to move backwards and forwards through the history of commands.
\gset [ prefix ]
Sends the current query buffer to the server and stores the query’s output into psql variables. The following is an example:
\s – query history
You can use \s to get the list of commands in the history. The following is an example:
You can hit tab to complete the keywords while writing the commands in psql client. For example, if you type “SEL” and hit tab, it will complete the keyword as “SELECT”. It also helps to complete the table names. If you have tables that starts with TAB, you can type the command to write the query and hit tab twice to see the table names start with TAB. The following is an example:
\d commands
\d can be used to get more information of the objects like tables, views, sequences, indexes, functions, etc.
For example, \d can be used to get column information of table, \d+ get some more information about the table like comments on the columns or definition of the objects like view or function, and \dt+ can be used to get the size of the table.
More \d commands are available in psql documentation .
Sends the current query buffer to the server, then treats each column of each row of the query’s output as a SQL statement to be executed. The following is an example:
The if-else statement available in psql client is useful to run conditional block in client side.
\watch [ seconds ]
This is very useful command when you want to monitor some events over time. It execute the buffered SQL in regular configurable interval ( default 2 sec) until interrupted. The following example shows the monitoring of pg_stat_activity for active sessions for every 5 secs:
When working in CLI mode, developers often want to save their preferences/client’s customized behavior in a runtime configuration file and want it to get executed every time user login to the database. For PSQL, this file is named as .psqlrc and is reside in the invoking user’s home directory. This file mostly includes setting up or enabling of timing, formatting the output and more. The following is an example:
You can use \? to get help on all the available commands.
Database developers and administrators often use meta commands to get their desired information when working with the SQL*Plus command line tool. However, after you migrate from Oracle to PostgreSQL, you use the psql client tool to interact with the PostgreSQL database. This post discussed the basic functionalities of the SQL*Plus and psql tools and their meta commands, and compared the meta commands between these two tools to help you understand psql better. You can install the SQL*Plus and PSQL clients by referring the installation sections and try the commands.
If you have any questions or suggestions about this post, feel free to leave a comment. We hope the information we shared helps!
About the Authors

Blog Topics
- Stack Overflow Public questions & answers
- Stack Overflow for Teams Where developers & technologists share private knowledge with coworkers
- Talent Build your employer brand
- Advertising Reach developers & technologists worldwide
- About the company
Collectives™ on Stack Overflow
Find centralized, trusted content and collaborate around the technologies you use most.
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
When or Why to use a "SET DEFINE OFF" in Oracle Database
I'm watching a Script in Oracle and I see something I don't recognize
I'm looking for documentation about "set define off" and it's literally writing "disable the parsing of commands to replace substitution variable with their values"
I don't really understand what they want to say.
Can anyone help me?

- 3 turns off prompting substitution variables. so you are not prompted to insert a value when it sees your substitution variable I believe the default is &. – Bryan Dellinger Dec 17, 2015 at 10:58
- 1 This is a setting for the SQL client , not the database itself. And thus it's documented in the SQL*Plus manual: docs.oracle.com/cd/E11882_01/server.112/e16604/… – a_horse_with_no_name Dec 17, 2015 at 11:16
2 Answers 2
By default, SQL Plus treats '&' as a special character that begins a substitution string. This can cause problems when running scripts that happen to include '&' for other reasons:
If you know your script includes (or may include) data containing '&' characters, and you do not want the substitution behaviour as above, then use set define off to switch off the behaviour while running the script:
You might want to add set define on at the end of the script to restore the default behaviour.

Here is the example:
With set define off , it took a row with &var value, prompted a user to enter a value for it and replaced &var with the entered value (in this case, X ).
Your Answer
Sign up or log in, post as a guest.
Required, but never shown
By clicking “Post Your Answer”, you agree to our terms of service , privacy policy and cookie policy
Not the answer you're looking for? Browse other questions tagged oracle sqlplus or ask your own question .
- The Overflow Blog
- Building an API is half the battle: Q&A with Marco Palladino from Kong
- Developers think AI assistants will be everywhere, but aren’t sure how to...
- Featured on Meta
- We've added a "Necessary cookies only" option to the cookie consent popup
- The Stack Exchange reputation system: What's working? What's not?
- Launching the CI/CD and R Collectives and community editing features for...
- The [amazon] tag is being burninated
- Staging Ground Beta 1 Recap, and Reviewers needed for Beta 2
- Temporary policy: ChatGPT is banned
Hot Network Questions
- Integral of product of two shifted Dirac impulses
- Why did my flight leave the gear down for the first 10 minutes of flight?
- Does the Federal Reserve insure the money of all depositors?
- Norm of the gradient of a function between Riemannian manifolds.
- RPi 4: What happens on reverse voltage supplied to the GPIO header?
- How to make those lines in Tikz?
- What to do when you find out a client went to another designer to change the finished design?
- Does Latin Word "honestus" Mean English Word "honest"?
- Recommendations for getting into sheaves with emphasis on differential geometry and algebraic topology
- Extracting list elements following a specific marker
- Best way to highlight the main result in a mathematical paper
- Equivalent Russian for some idiomatic English phrases
- Can LSTM model use ReLU or LeakyReLU as the activation funtion?
- split/reference big file by offset reference
- Is there a "Standard Algorithm" language, as used in academic papers?
- Do MEMS or optical gyroscope record Earth's rotational and revolutional angular velocities?
- Including somebody with an unrelated degree as a coauthor?
- Theoretical Computer Science vs other Sciences?
- What does the following excerpt from "To Kill a Mockingbird" mean?
- Do cell-phone base station antennas emit the same power as cell phones?
- Is there really a bawdy pun at the conclusion of Romeo and Juliet?
- What's the best word to indicate "not mindless"?
- What filter is used on this image?
- Tools/techniques to remove a long section from a wooden board
Your privacy
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy .

Geodata Master
Oracle database technical articles & geospatial data technology, set define off and ‘&’ in your sql code.
have you ever faced a problem when you executed a SQL code sent to you by a developer and the below pop window appeared ??

to avoid this just add the following starting statement:
set define off

When you have ‘&’ inside SQL Script you need to specify “ set define off ” at the beginning of the code . It will Turn off substitution variables .
Share this:
Leave a reply cancel reply.
Fill in your details below or click an icon to log in:
You are commenting using your WordPress.com account. ( Log Out / Change )
You are commenting using your Twitter account. ( Log Out / Change )
You are commenting using your Facebook account. ( Log Out / Change )
Connecting to %s
Notify me of new comments via email.
Notify me of new posts via email.

- Already have a WordPress.com account? Log in now.
- Follow Following
- Copy shortlink
- Report this content
- View post in Reader
- Manage subscriptions
- Collapse this bar
- Install App
SQL Developer
Set define off causes error in sql worksheet.

I'm using SQL Developer 18.2 to connect to a MS SQL Server database. When running SQL to do inserts with data containing the '&' symbol, I need to use 'SET DEFINE OFF' to prevent the prompts for variable substitution. But when I include that in my SQL, I get the following error:
Error starting at line : 4 in command -
SET DEFINE OFF
Error report -
'DEFINE' is not a recognized SET option.
I can run "help set" and see "DEF[INE]" listed as an option and "help set define" to see the exact syntax, but the command itself does not work. How can I get this to work, or alternatively, turn off variable substitution by some other method?
Stack Exchange Network
Stack Exchange network consists of 181 Q&A communities including Stack Overflow , the largest, most trusted online community for developers to learn, share their knowledge, and build their careers.
Database Administrators Stack Exchange is a question and answer site for database professionals who wish to improve their database skills and learn from others in the community. It only takes a minute to sign up.
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Removing REM INSERTING and SET DEFINE OFF from SQLcl Output
I ran below script to get data from Oracle, and then load to Postgres with psql.
However in SQLcl output, the first few lines are:
which results in error because the first two lines not recognized by Postgres, using psql client with -f option.
What are options that I can further put in SQLcl script to ensure those first two lines not being output? I don't want REM INSERTING and SET DEFINE .. in the output.
- oracle-sqlcl

- unfortunately they say this is not possible and suggest to search and replace afterwards: link – hello_earth Feb 12 at 7:57
Know someone who can answer? Share a link to this question via email , Twitter , or Facebook .
Your answer, sign up or log in, post as a guest.
Required, but never shown
By clicking “Post Your Answer”, you agree to our terms of service , privacy policy and cookie policy
Browse other questions tagged oracle oracle-sqlcl or ask your own question .
- The Overflow Blog
- Building an API is half the battle: Q&A with Marco Palladino from Kong
- Developers think AI assistants will be everywhere, but aren’t sure how to...
- Featured on Meta
- We've added a "Necessary cookies only" option to the cookie consent popup
- The Stack Exchange reputation system: What's working? What's not?
Hot Network Questions
- What if a student doesn't understand a question because of differences in dialect?
- Do MEMS or optical gyroscope record Earth's rotational and revolutional angular velocities?
- Did mechanical hard drives often malfunction in high elevation places such as Bogota?
- How to prevent function parameter conversion from value to reference type in C++17?
- Spoons card game probability problem
- Why did my flight leave the gear down for the first 10 minutes of flight?
- Would these solar systems be stable?
- What is the covariant version of the dipole moment?
- Does China sell more weapons to Iran or to Saudi Arabia?
- Are designs explained in academic publications considered to be in public domain if there isn't yet a patent application about it?
- Is there really a bawdy pun at the conclusion of Romeo and Juliet?
- Source for saying Emes at end of Shema?
- To find genes that don't change in RNA-seq, Deseq2 has altHypothesis="lessAbs". Is there a way to make limma do the same thing for proteomics?
- Theoretical Computer Science vs other Sciences?
- How do you prevent yourself from neglecting scientific accuracy in a sci-fi-fantasy story without telling?
- How useful is a caliper for a home-based bike workshop?
- Can a 13-year-old in the UK accept freelance work?
- How did the Virgin Birth of Jesus prove to be `sign' as prophesied in Is 7:14?
- What filter is used on this image?
- Can LSTM model use ReLU or LeakyReLU as the activation funtion?
- What's a good word to describe someone who is prone to sudden changes of mood?
- How to extract the internal key of a simple P2TR address?
- Is it easier to unclip using a shoe with higher stiffness index?
- Is cross examination strictly confined to the subjects that the original examination pertained to, or can the opposing party make their own points?
Your privacy
By clicking “Accept all cookies”, you agree Stack Exchange can store cookies on your device and disclose information in accordance with our Cookie Policy .
- Running with SET DEFINE OFF sql
LSU says: We receive files sql (insert statements) to a third party via an automatic process. I want to load these files using sql * more, but also want to SET DEFINE OFF to prevent the substitution of variables. We cannot change the sql sort files. I use: sqlplus user/ [email protected] @file.sql Is there anyway that I can set the parameter in the command line? I do not particularly want to use glogin.sql like other scripts I need DEFINITION be on. Thank you.
Can you add the command "SET DEFINE OFF" at the beginning of the file.sql?
If you cannot change the file.sql, and then create a script called define_off_and_run.sql, like this:
Then call it sqlplus like this:
If you can not do everything above, perhaps you could use instead of glogin.sql login.sql.
This user should always have the VALUE SET OFF? (For example, this user is used only for this download process, or you can create a user to be used only for this download process?) If so, you can do a test to see who's the user in glogin.sql (or login.sql) and SET DEFINE OFF only if the special user.
Tags: Oracle
Similar Questions
- set define off
SET DEFINE OFF is a SQL Plus command...
You don't need to worry about & in a stored procedure.
Just continue with your code...
- [Oracle 8i] Quick question on Set define Off
(1) Yes (2) no - it remains in force for the duration of your session unless you set this back again
- By using the quote delimiter with set off.
In this case simply update your client. From your database in version 10 already, you must also use a client version 10.
9i and 10g client can be installed on a PC without a problem alnongside. It's just that the 10g client is installed with a little more subfolders. Maybe you have already installed and just continue to use the old client (old link?).
On a windows client system 10g would be in a structure like this: file://c:/oracle/product/10.2.0/client_1/bin
whereus 9i client is in: file://c:/oracle/ora92/bin
Published by: Sven w. on July 21, 2011 19:33
Published by: Sven w. on July 21, 2011 19:36
- problem passing of arguments to plsql block with a lot of sql queries
FILE = $(PWD)
EMP_FAIL = $(awk-F '=' ' / ^ EMP_FAIL_RECORD / {printf $2}' DBConnectionParameters/DBConnectionParameters.properties)
HR_FAIL = $(awk-F '=' ' / ^ HR_FAIL_RECORD / {printf $2}' DBConnectionParameters/DBConnectionParameters.properties)
sqlplus-s "${USER_NAME}/${PASSWORD}@${HOST_NAME}:${PORT}/${SERVICE_NAME}" < < EOF
-a lot of queries and other things
HR_FAIL$ @ReportOperation/HR_Err_Spool.sql $FILE <-arguments
EMP_FAIL $ @ReportOperation/Emp_Err_Spool.sql $FILE
EXPRESSIONS OF FOLKLORE
/ * The above used to work * /.
-just 2 queries below
/ * Works one above * /.
HR_Err_Spool.SQL
SET POSITION OFF FEEDBACK OFF ECHO OFF PAGESIZE 0
coil & 1 Add;
Select GID | «, » || Display_Name | «, » || Email_Address. «, » || Country_Code | «, » || City | «, » || Department | «, » || Practice | «, » || Designation | «, » || Status_in_AD | «, » || Start_date | «, » || End_date | «, » || Person_Type | «, » || Err_temp_emp_hr status;
You SET DEFINE OFF then never back down it on before running reel & 1 Add.
If the DEFINITION is disabled the & 1 is not evaluated as a parameter.
- Log / Trace results from Scripts that are run with Run (@) statement.
Oracle10g (R1)
I used to run large number of scripts to a user of single script file execute statement i.e. "SQL > @/ path/script_file_name.sql '. But I can't trace on how statements executed successfully and how much get failed. Is there anyway I can / trace log the execution of all statements in this case?
As others have said, you can create a master script like the example below:
See you soon
- There is a possibility to run Labview projects or to set them off from a batch file or if the exist and the ability to control labview or run it from an external application?
Hi, I m a bit new in LabVIEW and I'd like to ask a few questions...
-There is a possibility to run Labview projects or to set them off from a batch file or if the exist and the ability to control labview or run it from an external application?
-One API PI or raspberry beaglebone exists for LabVIEW?
-Power supply Wich can recommend you control with LabVIEW? (some chip solution witn 0 - 30v / 0 - 3A DC)
Thank you very much for your advice!
Best regards
I know raspberry, so no comment on that.
For the rest:
-Do you want to create tools for developers? If so, we must look in the API of project VI and VI server. If this isn't the case, please compile your application LV as executable and call this one using a batch file.
-LV prefer specific supplies. LV is a programming language. There are several power supply providers (including OR) which provide directly the LV API for their power supplies. So, essentially, the approach is:
1. choose food that serves your needs.
2. check if the power supply has a standard interface for programming (such as Ethernet, GPIB, or if the power supply is PXI, is already providing a programming interface!)
3. check if the LV API (so-called "instrument driver") is available for the device. In the case of a PXI system, get you a device driver (for example NI DCPower).
4. check if the LV samples are available (for example in the Finder for example LV once you have installed the driver).
- VMware vCenter service stops with size of DB SQL errors
We run VMware vCenter 4.1 with 3 ESX hosts and VMs. 50 vCenter runs on Windows 2008 R2, SQL 2005 Express SP2.
Yesterday, our virtual backup failed, saying: it could not connect to the vCenter agent. When I have looged question, it appeared that he had stopped the vCenter Server service. Upward on the continuation of the investigation, it appears that the SQL Express database had reached 4 GB in size, which is limited, and this caused the vCenter fall service.
I checked some of the forum posts and have accomplished the following:
- Define a retention policy of database for tasks and events, it is initially unchecked, but I checked and set it to 90 days in the beginning and now 30 days.
- Found a script on the VMware forum called VCDB_table_cleanup_MSSQL_V4.X.sql that can clean the database. I put it to delete the old data (change of SET @DELETE_DATA = 1) 90 days and he kidnapped 130 000 + lines.
- Performed a narrowing of the database & file shrink on the data file - I was only 9 MB back?
- Performed a narrowing of the database & file shrink on the log file - it right back a little more, about 100 MB.
- Changed the size of the log file of 460 MB to 1024 MB, in database properties > settings files.
However, even after all of the above, when I reboot the server, or stop and start the service vCenter, the following errors are recorded in the application log: ------------------------------------------- Log name: Application Source: MSSQL$ SQLEXP_VIM Date: 2011-08-16 08:51:44 Event ID: 1827 Task category: (2) Level: error Keywords: Classic User: SYSTEM Description: CREATE DATABASE or ALTER DATABASE failed because the resulting cumulative database size exceeds your limit allowed 4096 MB per database. ------------------------------------------- Log name: Application Source: MSSQL$ SQLEXP_VIM Date: 2011-08-16 08:51:44 Event ID: 1105 Task category: (2) Level: error Keywords: Classic User: SYSTEM Description: Could not allocate space for object ' dbo. VPX_BINARY_DATA'. 'PK_VPX_BIN_DATA' in 'VIM_VCDB' database because the 'PRIMARY' filegroup is full. Create disk space by deleting unnecessary files, removing objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on it to the existing files in the file group. ------------------------------------------- Log name: Application Source: VMware VirtualCenter Server Date: 2011-08-16 08:51:44 Event ID: 1000 Task category: no Level: error Keywords: Classic User: n/a Description: The description for event ID 1000 from source VMware VirtualCenter Server can not be found. Either the component that triggers this event is not installed on your local computer or the installation is corrupted. You can install or repair the component on the local computer.
If the event is on another computer, the display information had to be saved with the event.
The following information has been included in the event:
Can anyone provide another solution to this problem? We must be able to perform a successful backup!
For any help or suggestions appreciated!
Due to the size of the database, the query may take time. I suggest that you let run and just be patient.
Another option is to upgrade to a version of SQL Server 2005/2008 'complete' (see http://kb.vmware.com/kb/7960893 ), or - where this is an option for you - to migrate towards the currently experimentally supported (starting with vCenter Server 4.1 Update 1) version SQL Express 2008 which supports up to 10 GB per database. (see http://www.vmware.com/pdf/vsphere4/r40/vsp_compatibility_matrix.pdf ) Although there are 32 and 64 bit in compatibility matrix, it seems that there are currently problems with 64-bit (see http://kb.vmware.com/kb/1036085 )
- With regard to dynamic SQL
The approach to execute DDL using PL/SQL statements on the fly must be judged badly. Also the script is redundant, as in a controlled environment you know what you have and you don't need to check if a column exists . Also if the column does not exist, the script would fail. The alter table can be done through regular SQL.
Necessary change is drag the script in the trash where it belongs in the first place and leave it there.
Oracle is not a product for hackers to code.
------------- Sybrand Bakker Senior Oracle DBA
- Installed Sonic RecordNow DELETE. Ste 7.0, but the program says that my readers arwe set to 'off '. They are not. What's wrong?
Program installed but starts it gives the error that my readers are set to disabled. (DUH!) My drives are NOT set to off. I know that the program is not compatible with Win 7 (element DLA not install), but it is not necessary to start the program.
So, what's the problem?
Duplicate thread:
I have a problem with RecordNow 7.0.
Given that the program is not compatible with the windows operating system 7 install the program in compatibility mode.
Most programs written for Windows Vista also work in this version of Windows, but some older programs might run poorly or not at all. If a program written for an earlier version of Windows does not work, you can try changing the compatibility of the program settings, either manually or by using the program compatibility problems.
To run the troubleshooting program compatibility Troubleshooter
1. open the program compatibility problems by clicking on the Start button, then Control Panel . In the search box, type Troubleshooting , and then click Troubleshooting . Under programs , click run programs made for previous versions of Windows .
2. follow the instructions in the troubleshooting.
If you are unable to install a program, insert the installation disc for the program and, using the Troubleshoot utility, navigate to the program setup file, usually called Setup.exe, Install.exe, or something similar. This utility is not designed to work on programs that have an .msi file name extension.
- Is there a way I can find the AUTHID set of PL/SQL?
Is there a way I can find the AUTHID set of PL/SQL?
You can view the current_schema:
- How to run with the TYPE collection as param
You don't need a query, use the COUNT of the collection attribute:
Max [My Italian blog Oracle | http://oracleitalia.wordpress.com/2010/01/23/la-forza-del-foglio-di-calcolo-in-una-query-la-clausola-model/]
Published by: Massimo Ruocchio, January 27, 2010 09:50
- void VI does not run with the main VI.
My main and sub VI is attatched.
danil33 wrote: Re: void / VI does not run with the main VI.
When you start your main program, the Subvi is called and the main VI must wait the Subvi before it can continue. However, the Subvi is not set to open the Panel before, so very probably that it runs in the background for 100 seconds (1000 iteration to 100ms), because no one can press the stop button at the beginning to put an end to the Subvi. Once the Subvi is completed, the last value is returned to the main VI via the output connector and the main VI can process and display this last value. At this point, the main VI stops, because it's done (hopefully you do not "continuous operation").
Obviously you have some misconceptions of beginners on the stream. Please we tell exactly what you expect the program to do, and we might be able to point in the right direction.
- When I wake up the computer in "sleep" or "hibernate" mode, only the photo Office rises, not the icons, so I have to restart with a hard off every time. What can I do?
When I wake up the computer in "sleep" or "hibernate" mode, only the photo Office rises, not the icons, so I have to restart with a hard off every time. What can I do?
Press CTRL + ALT + DELETE and bring up the Task Manager > move in process > select Explorer > end task and it will restart and if all goes well it will bring to the top of your screen properly.
Your computer is completely up-to-date with all the updates?
Note I'm not a fan of setting hibernation or sleep a computer there, it can sometimes lead to problems (as you see)
I hope this helps.
- Computer runs slowly, and cut off when I watch or listen to the music or video
My computer is HP Windows Vista - office computer. My computer runs slowly, and cut off when I watch or listen to any video or music. I tried restore, to restore all the drivers for the original version (but did not offer the video card) and all I could think to do. My computer will not be completely updated anything - I think that my video card is bad. What can I do? inexpensive if possible preference. Thank you!
Hello Deedahday,
Thanks for posting on the Community Forums of Microsoft Vista.
This problem may occur because of many factors. Follow the steps below; It could help us solve the problem.
Access the link below and follow the steps to optimize Windows Vista for better performance. http://windowshelp.Microsoft.com/Windows/en-us/help/83EC0FFE-EE04-4D53-8B87-25D1F05C954E1033.mspx
Try to update display drivers: Try to access the computer manufacturer's website and select the model of your computer and download the latest drivers to screen for your computer and install the same. Access the link to download the drivers from the manufacturer of the computer: http://www.hp.com/#Support
Also set the virtual memory of the system managed size: a. click the Start button and access control panel b. click on system and Maintenance c. click System. d. in the left pane, click Advanced system settings. If you are prompted for an administrator password or a confirmation, type the password or provide confirmation. e. on the Advanced tab, under performance, click settings. f. click on the Advanced tab, and then under virtual memory, click on change. g. Select 'Size of system managed' and click on Set. h. click on apply and Ok.
Restart the computer and check if it works very well.
It will be useful.
Thank you and best regards,
Srinivas Microsoft Answers Support Engineer Visit our Microsoft answers feedback Forum and let us know what you think
Maybe you are looking for
Portege M400 EZ5031 - not see HD disc format
When the Portege M400 EZ5031 formatting I do not get to reinstall the windows XP or Vista, it reads door CD/DVD, the installation, but it is not HD, it says that the media do not exist in the computer. the solution has been ultilizar the windows98 wh
How to select items programmatically in a tree
Hello I'm looking to persist selection from the tree in my application (save when closing a file, load from the file to the opening), but I can't understand how programmatically select an item in a tree on the charge. I would like to select the item
Updates Windows 7 Gets the unknown error code
Windows updates will not download, I get an error of 3 important updates whenever I try to download them, "unknown error"?
view laboratory with a CIF 50 Hilscher Profibus interface.
Hello I need to view laboratory with a CIF 50 Hilscher Profibus interface.I read some documents provided by Hilscher, he spoke of Sys - Con, OPC servers etc etc.Through this profibus, I need to check a box of valves through RS-485 communication.The f
Lost my battery life while the charger is plugged!
I had a lot of trouble with my Windows Vista Basic on my level of battery charge. Even when my charger is plugged in it does not, but stay the same % now im only to left %4 and maybe isn't able to return if I turn off my comp. Please ANSWER QUICKLY
Oracle SQL*Plus: The Definitive Guide, 2nd Edition by Jonathan Gennick
Get full access to Oracle SQL*Plus: The Definitive Guide, 2nd Edition and 60K+ other titles, with a free 10-day trial of O'Reilly.
There are also live events, courses curated by job role, and more.
The SET DEFINE command changes the prefix character used to mark substitution variables. You can use SET DEFINE to turn variable substitution off.
Is the command, which may be abbreviated SET DEF.
Disables variable substitution.
Enables variable substitution, and resets the substitution prefix character back to the default ampersand (&) character. Variable substitution is on by default.
Is the new substitution prefix character.
When you start SQL*Plus, variable substitution will be on by default, and the default prefix character is an ampersand. If you are running a script that uses ampersands in text strings, you may want to change the prefix character to something else. If your script doesn't use substitution variables, you may find it easiest to turn the feature off.
Get Oracle SQL*Plus: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.
Don’t leave empty-handed
Get Mark Richards’s Software Architecture Patterns ebook to better understand how to design components—and how they should interact.
It’s yours, free.

Check it out now on O’Reilly
Dive in for free with a 10-day trial of the O’Reilly learning platform—then explore all the other resources our members count on to build skills and solve problems every day.


Aug 3, 2019
Transaction management in PostgreSQL and what is different from Oracle
Tl;dr: everything is different about transaction behavior. this may also change your ideas about “database independent” applications..
I like to explain some PostgreSQL concepts from an oracle DBA point of view. There are many things that are different in the two RDBMS and it is important to understand them.
Auto commit
Here is a short example where I create a table, insert one row and rollback:
I never executed any commit but my changes are saved and published. This is auto-commit by default in psql. I think I prefer the Oracle default where the commit is my decision, and only what I’ve committed is visible:
So, is Oracle the best for transaction management?
Well… autocommit default is only one thing. Let’s go further.
First, this is only a client setting. SQL*Plus has it set to off:
But JDBC drivers may have it set to on. So, rather than a nice thing about the database, it is just a nice default of SQL*Plus.
Commit on exit
And wait… are all sqlplus defaults so smart? Let’s come back to my Oracle database where I committed nothing:
Are sqlplus defaults so smart? I didn’t commit the last insert but it was committed by default. Not because of auto-commit but because of exit-commit:
That’s not a nice default. If I quit without saying ‘commit’ I want a rollback. It is highly recommended to set exit-commit off to avoid any unexpected commit. (also recommendedvfor scripts having a WHENEVER SQLERROR EXIT that mentions ROLLBACK because COMMIT is the default).
DDL auto-commit
And that’s not all… The first row (n=1) was never explicitly committed. It was inserted with DDL (CREATE TABLE) and DDL are always auto-committed. That’s the Oracle Database, nothing to do with the client: you cannot be transactional with DDL.
Start transaction
Back to PostgreSQL, the default is auto-commit but I have the choice. I can explicitly start a transaction and then I’ll have to explicitly commit it.
See? I have the 3 rows from the first run which were all auto-committed. But now that I explicitly started a transaction, everything was transactional, even the DDL: the DROP TABLE, the CREATE TABLE, the INSERT were explicitly rolled-back. And even the last INSERT was implicitly rolled-back on exit.
Now, who is the winner in transaction management? There’s even more: you can send a multi-statement command to the backend and it will be processed as an implicit transaction.
Note that START TRANSACTION is the ANSI SQL syntax, but PostgreSQL accepts also BEGIN, BEGIN TRANSACTION and BEGIN WORK.
Set Transaction name
Don’t think that there are no “begin transaction” in Oracle. The SET TRANSACTION starts it, in order to define the isolation level, or simply to put a name to the transaction.
This example looks at the transaction address in V$SESSION and V$TRANSACTION
This illustrates when a transaction starts (visible with a TADDR in V$SESSION and a row in V$TRANSACTION): the first INSERT/DELETE/UPDATE/MERGE/SELECT FOR UPDATE or a SET TRANSACTION
Autonomous Transaction
Not available in PostgreSQL but possible in Oracle: we can have nested transactions. This is very convenient in some limited cases, like logging the error in the database (and commit this insert) before the rollback of the transaction.
This shows that there can be multiple transactions for the same session. The PADDR is only the address or the top-level one.
User Call level rollback
(Note that I’ve previously written “statement-level rollback” but this is misleading because a statement can be executed in a recursive call, as in a PL/SQL block. What I show here is about a user call statement which can actually be a SQL statement or a PL/SQL block or a procedure call ).
Still in Oracle, when a statement fails in a user call, the modifications done by this user call are rolled back, but not the previous modifications. The transaction can continue (like re-try, or do an alternative change):
ERROR: current transaction is aborted
That’s different in PostgreSQL where the transaction cannot continue when you encounter an error:
Here I rolled back. But I can also commit to terminate the transaction, but it will rollback anyway:
Actually, we can achieve user call level rollback even in PostgreSQL, using savepoints:
With Oracle, you don’t need to because there is an implicit savepoint before each execution.
Well, the PostgreSQL client psql do the same:
and then psql will automatically create a “pg_psql_temporary_savepoint”.
PostgreSQL 11 Procedures
Before version 11 all commands (which can be one statement, or multiple ones, or PL/pgSQL anonymous or stored procedures) were run in an atomic context, with no intermediate commits possible without a roundtrip with the client. Like this:
The first call has inserted values 10 and 12 and they were committed because I run in the default AUTOCOMMIT. But the second call has encountered a duplicate key and the whole was rolled-back. But in PostgreSQL 11 I can add an intermediate commit so that the first rows are committed before I encounter the error.
Here the rows 5 to 9 have been committed before encountering the exception for row 10.
Still, no need for an explicit BEGIN here. The COMMIT in the loop will end the transaction (started implicitly on the server as I did no BEGIN before) and start a new one. The last transaction started will be committed implicitly.
Additionally, you can look at the timestamps in the two previous demos. In PostgreSQL, current_timestamp is consistent in the transaction.
Invalid transaction termination
Here is the same, but with AUTOCOMMIT off:
Actually, this is what made me start this blog post. But that’s already a lot, and further investigation on this will be on the next post: AUTOCOMMIT and PostgreSQL transaction management in procedures
Implicit transactions
Ok, just one more on this. The error above is not really caused by AUTOCOMMIT but by the way psql handles AUTOCOMMIT. Actually, with PostgreSQL, the AUTOCOMMIT is not a BEGIN statement added by the psql client, but the backend server creating an implicit transaction when there is not already one. It is even the opposite: when AUTOCOMMIT is off, the client adds a “BEGIN” so that the server does not create an implicit one. Which means that the “invalid transaction termination” occurs also without auto-commit when we CALL the procedure from an explicit transaction.
This long post is only a short sample of the many differences between Oracle and PostgreSQL transaction management. And I’ve only used psql and sqlplus here. Do you want to test the same from Java JDBC and Python psycopg2?
Comments welcome on Twitter:
More from Franck Pachot
Developer Advocate at Yugabyte, Open Source distributed SQL database 🚀 Also Oracle ACE Director, Oracle Certified Master, AWS Data Hero, OakTable member
About Help Terms Privacy
Get the Medium app

Franck Pachot
Text to speech

IMAGES
VIDEO
COMMENTS
It's not needed because psql doesn't do substitution the way sqlplus does it.
Off. disables the genetic optimizer algorithm. DEFAULT. Equivalent to specifying SET GEQO='on'. This algorithm is on by default, which used GEQO for
Note that set and \set commands are different in psql. ... If you turn feedback off, and your query returns no rows, you simply return to
With set define off , it took a row with &var value, prompted a user to enter a value for it and replaced &var with the entered value (in this
When you have '&' inside SQL Script you need to specify “set define off” at the beginning of the code . It will Turn off substitution variables.
But SET DEFINE OFF is not an "Oracle thing", if by that you mean "Oracle database" or "Oracle SQL and/or PL/SQL". The SET command is a SQL*Plus
I ran below script to get data from Oracle, and then load to Postgres with psql. SET SQLFORMAT INSERT SET FEEDBACK OFF SET TERMOUT OFF SPOOL
sql like other scripts I need DEFINITION be on. Thank you. Can you add the command "SET DEFINE OFF" at the beginning of the file.sql? If you cannot change the
The SET DEFINE command changes the prefix character used to mark substitution variables. You can use SET DEFINE to turn variable substitution off.
autocommit default is only one thing. Let's go further. First, this is only a client setting. SQL*Plus has it set to off: SQL> show autocommit