Skip to Main Content
  • Questions
  • Is it a must to run pupbld.sql as system


Question and Answer

Connor McDonald

Thanks for the question, Ravi.

Asked: August 19, 2000 - 11:52 am UTC

Last updated: April 22, 2024 - 1:17 am UTC

Version: 8044

Viewed 10K+ times! This question is

You Asked


I create databases then I run the catalog.sql and catproc.sql. Sometimes, I donot run pupbld.sql. Users may get warning message but they could login and work.

But, My friend says that if pupbld.sql is not run as system then users will get the error messages and they cannot log into the database at all. Is it true.

Is it a must to run the pupbld.sql. I could not see in the documentation, whether it is a must. If, it is a must, how I am able to login.

Is this being called by anyother script like catalog.sql, catproc.sql. I grepped both the files for pupbld.sql. It does not exist.

Please clarify.


and Tom said...

It is not true. PUBBLD stands for "Product User Profile BuiLD". This table has meaning only to sqlplus and no other interface. SQLPlus will print a warning message when you log in but will still log in.

You do not need it.

pubbld.sql is in $ORACLE_HOME/sqlplus/admin -- it is only for sqlplus and nothing else.


  (8 ratings)

Is this answer out of date? If it is, please let us know via a Comment


A Reader, July 19, 2005 - 12:52 pm UTC

Very helpful - saved a bunch of research - thank you.

The script is called pupbld.sql (not pubbld.sql).

Error in connecting oracle 7 database from oracle 9i client

Manoj Kumar, August 08, 2005 - 11:36 am UTC

I am trying to connect oracle 7 database from oracle 9i client. It show me error
You may need to run pupbld.sql via system
product_user_profile information is not loaded

what is the solution? It is very urgent. Is it possibe or not and it can't create any problem to other user which are using oracle 8i or 7i.

Thanks in advance


Tom Kyte
August 08, 2005 - 8:03 pm UTC

9ir2 is know to have serious issues connecting to 7.x, it is a very non-supported configuration. Many things will go wrong


sharad, September 08, 2005 - 5:50 am UTC

it was useful

Is it a must to run pupbld.sql as system"

RAVI.B.G, September 18, 2006 - 6:13 am UTC

Is it a must to run pupbld.sql as system"

Tom Kyte
September 18, 2006 - 1:25 pm UTC

-- sqlplus system/<system_password> @pupbld
-- Connect as SYSTEM before running this script

straight from the scripts header....


A reader, October 12, 2010 - 8:37 am UTC

Hi Tom,

I have some basic questions to ask:

1) What is the main difference between SYSTEM and SYS in terms of functionality?
2) Why should we run pupbld.sql from System only? What is the harm if we run it through SYS?
Tom Kyte
October 12, 2010 - 9:16 am UTC

1) sys is not allowed to log in in current releases. The only way to appear as sys is to connect as "sysdba". Sys is the all powerful "super of the super users". Somethings work differently under SYS than any other account. For example, read only transactions - do not work with SYS. Flashback query - not with sys (so if you export as sysdba - beware, consistent=y is MEANINGLESS - sysdba cannot do consistent exports...). sys owns the real data dictionary. You should almost NEVER be logged in with a schema name of SYS.

system is just an account - our account not yours to use for testing and what not. It owns auxiliary dictionary objects (not the true data dictionary - extra bits). It should almost NEVER be used as well.

2) you should never do things as SYS, sys is magic, sys is ours, sys is special, sys is reserved.

and furthermore - because the directions tell you to do it that way - that should be sufficient for an answer really - because the instructions are to install as SYSTEM - we intended it to be there in that schema.

SYS & TEM... whadda act!

Duke Ganote, October 13, 2010 - 7:14 am UTC

So SYS is the great and powerful illusionist who knows how to provide read-consistent images, and sees everything. TEM is the assistant who handles the props and cues SYS as to which acts will follow. And everyone else is the audience who sits enjoys the read-consistent images.
Tom Kyte
October 13, 2010 - 8:22 am UTC

sys is the great thing that can only do READ COMMITTED (everyone in the database gets read consistent images, regardless of status).

sys does not provide anyone with read consistent images, it is just getting that as a side effect of being a database user.

what should I do

Jason, December 22, 2013 - 8:26 am UTC

I have run the pupbld.sql in sys when I DO NOT NOTICE that should run in system.And now.It is always warning the waring message when I connect with other user.How can I solve the problem?
ps:Is it just a waring message without any influence?If so,I want to ignore it.It just a testing environment.

Is it a must to run pupbld.sql as system

Frank, April 10, 2024 - 4:03 pm UTC

In the past i did it as SYSTEM.
Today i took the dbca to generate the script. There it is done as SYS.
Now i am confused...

Connor McDonald
April 22, 2024 - 1:17 am UTC

I just did a dbca (19c) and looked at the database creation scripts generated. I get this in CreateDBCatalog.sql

connect "SYS"/"&&sysPassword" as SYSDBA
set echo on
spool C:\oracle\admin\orcl\scripts\CreateDBCatalog.log append
connect "SYSTEM"/"&&systemPassword"                     <<<=====
@C:\oracle\product\19\sqlplus\admin\pupbld.sql;    <<<=====
connect "SYS"/"&&sysPassword" as SYSDBA
connect "SYSTEM"/"&&systemPassword"
set echo on
spool C:\oracle\admin\orcl\scripts\sqlPlusHelp.log append
@C:\oracle\product\19\sqlplus\admin\help\hlpbld.sql helpus.sql;
spool off
spool off