Error Handling with sql *plus from a shell script
When I execute sql plus in a shell script with the wrong username/pass pair, the shell script hangs without terminating. What is the proper way to execute sql plus in a shell script that will catch a login failure and make sure the script doesn't hang?
Example:
We execute the following in our shell script:
sqlplus ${ORACLE_INST} @./sql/ftp_ledger_put.sql
Now if somebody comes along and alters the login then the script would hang. Is there a way to have the script exit gracefully?
Not the most elegant solution but.......
sqlplus <<EOD 2>&1 >some_log_file
user/pwd
@somescript
exit
EOD
Because sqlplus allows for 3 tries at log in if user/pwd is not valid it will try to use subsequent lines. Each will fail.
You have to look in some_log_file to determine success/failure
Ken
Similar Messages
-
Hi Folks
I have this code in my shell script but am getting the below error please check
sqlplus -s scott@xyz/tiger @1.sql > 1.log
and oracle home is
/oracle/app/oracle/product/11.2.0/dbhome_1
error thrown is
Error 6 initializing SQL*Plus
SP2-0667: Message file sp1<lang>.msb not found
SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory
i have checked i have sp1us.msb please help me on thisnewbie wrote:
Sir i have given my oracle home.
how to check whether it is set properly o not?No, you have stated what you believe ORACLE_HOME should be. But you have NOT proven that it was correctly set in the session that threw the error, and the error itself is almost certain proof that it was NOT set correctly. And your assertion that the referenced file does indeed exist (again, your assertion, not proof) lends more weight to the evidence that ORACLE_HOME is not properly set.
Issue the following commands, then copy and paste the entire session (full command, full output) to your next posting
env |grep ORA|sort
echo $PATH
sqlplus -s scott@xyz/tiger @1.sql > 1.log -
Procedure call from SQL*Plus in Korn Shell Script
I am trying to excute a procedure from sqlplus, truncate_audit_table. I doesn't execute. If I do it manually
it executes. I have tried multiple ways, as below. This is inside a Korn Shell scripts that creates the procedure
and counts the aud$ table. All that works, but does not truncate the aud$ table. It does not do it, no error, just
passes it by. Does anybody know why?
${ORACLE_HOME}/bin/sqlplus -s / << EOF | tee -a ${LOG}
set feedback on
@/backup/oracle/orcl/audit/truncate_audit_table.sql
select count(*) from sys.aud$;
exec truncate_audit_table;
exit
EOF
${ORACLE_HOME}/bin/sqlplus -s / << EOF | tee -a ${LOG}
set feedback on
@/backup/oracle/orcl/audit/truncate_audit_table.sql
select count(*) from sys.aud$;
begin
truncate_audit_table;
end;
exit
EOF
This is the procedure that is being called:
create or replace procedure truncate_audit_table
as
begin
execute immediate 'truncate table sys.aud$';
end;
/aud$ is owned by sys. You can see it does the count with or without the "\".
It creates the procedure under SYS , but does not execute it.
Truncate aud$ table...
Procedure created.
COUNT(*)
422
1 row selected.
===============================================================
audit_maintenance.ksh Completed: Thu Oct 26 14:03:17 GMT 2006
=============================================================== -
Connection error when running sql*plus from within a Makefile
As part of our build process the commands to install/update our database schema are executed from a Makefile (along with all the other build/test commands). We've been running our build under several system configurations, but have hit a hitch with one specific one. So far this has worked with Windows XP (cygwin) against a Express Edition DB and Red Hat ES 5 against Oracle 11g.
I am now trying to get the build running on a Ubuntu 8.04 workstation with the Oracle Express Edition installed. From the command line I can execute a simple command line such:
echo "SELECT 5 as foo from dual"|sqlplus user/password
Now if I put the same command in a Makefile, I receive the following error message:
ERROR:
ORA-01034: ORACLE not available
ORA-27123: unable to attach to shared memory segment
Linux Error: 22: Invalid argument
Additional information: 1
Additional information: 32769
This error seems to pop up a lot when a client is not properly configured (atleast the googling I've done has said as much), but my client is clearly working as I can connect outside of the Makefile. Is there possible some info that gets lost when make executes the process? Any ideas of what I could do to fix this?see 115753.1 note on metalink , it clearly explains why you are encountering this .
-
Return codes from sqlldr command from unix shell script
I am trying to capture error code from sql loader from unix shell script and display proper messages.
sqlldr parfile=sdb.par control=$cntlfile data=$infile bad=$badFile log=$logFile rows=10000
rows=10000
retcode=`echo $?`
case "$retcode" in
0) echo "SQL*Loader execution successful" ;;
1) echo "SQL*Loader execution exited with EX_FAIL, see logfile" ;;
2) echo "SQL*Loader execution exited with EX_WARN, see logfile" ;;
3) echo "SQL*Loader execution encountered a fatal error" ;;
*) echo "unknown return code";;
esac
Eventhough, there are errors while executing sqlldr, it is always returing recode zero. What could be the possible reason
Please adviceIs there a typo in your code ?
sqlldr parfile=sdb.par control=$cntlfile data=$infile bad=$badFile log=$logFile rows=10000
rows=10000
retcode=`echo $?` In this code, you get the return code of the statement in bold which is not the sqlldr statement ... -
Error in calling SQL plus program with parameter from Shell script
This is my Shell script. I am trying to call in the SQL plus program with the parameter and the shell script is registered as a concurrent program.
PARAMETERS=`echo $1 |tr -d '\"'`
DB_USER_ID=`echo $PARAMETERS|cut -d" " -f3|cut -d"=" -f2`
CONN_STRING=$DB_USER_ID
REQ_DATE=`echo $PARAMETERS|cut -d" " -f9|cut -d"=" -f2`
timestamp=`date +%m-%d-%y-%H:%M:%S-%Z`
timestam=`date +%y-%m-%d`
sqlplus -s $CONN_STRING @ar_statement.sql $REQ_DATE
chmod 755 statement.sh
. statement.sh
My Sql plus program is like this.
set pagesize 0
set heading off
set feedback off
spool $GEC_TOP/log/ge_ar_statement.sh
select output_file_name
from fnd_concurrent_requests
where trunc(actual_completion_date) = '&2';
spool off;
exit;
When i run the concurrent program, i am getting the following error:
ar_statement: line 14: REQ_DATE: command not found
Enter value for 2:
User requested Interrupt or EOF detected.
ar_statement.sh: line 1: Enter: command not found
ar_statement.sh: line 2: User: command not found
ar_statement
Program exited with status 127
I am not strong at Unix Porgamming and i would request someone who can
help me out as soon as possible.
I need this solution quickly and thank everyone in advance.
Thanks.Can you put your coding between code statements, like shown in the FAQ. It will be easier to read.
Looking at your script, my first guess is that crontab will not find your sqlplus since your script does not have $HOME/bin in the $PATH. From what I understand, running .profile in your script will not work either because variables are exported to sub-shells, not to the shell above. You can call your script with a dot like . ./script which means that the script will run like it was typed at the command prompt. But it will be less confusing to define appropriate variables in the script. eg.
ORACLE_SID=my_instance_name
ORACLE_HOME=/my_path_to_oracle_home_directory
LD_LIBRARY_PATH=$ORACLE_HOME/lib
PATH=$ORACLE_HOME/bin:$PATH
I remember some slightly different way of coding to handle the sqlplus return codes.
For instance:
sqlplus -s /nolog > /dev/null <<-EOF
connect system/manager
@ssm.sql
whenever oserror exit failure
whenever sqlerror exit failure
EOF
sql_err=$?
if [ $sql_err -ne 0 ]; then
echo "FAILURE"
else
echo "SUCCESS"
fiThe - in -EOF supresses tab's
Using connect will prevent ps from showing your login credentials
In some versions of bash the ending EOF needs to be at the beginning of the line to work.
Edited by: waldorfm on Jul 14, 2010 7:05 PM
complaining about putting code between code delimiters and forgot myself ;-)
Edited by: waldorfm on Jul 14, 2010 7:08 PM
Btw, if you "source" a script running it like . .script, than an exit in that script will log you out. -
Error 45 initializing SQL*Plus
Hi All,
When I try to execute a create view script, I encounter a "Error 45 initializing SQL*Plus Internal Error".
When googled for it. The BUG 3039738 is associated with this error message.
My question is, When the Metalink has explained the scenario in BUG description that. This error is encountered when a shell script is trying to invoke the sqlplus.
I donno why I am getting it when I try to run a SQL create view script.
Details:
OS:Red Hat Linux 5.2
DB:Oracle 10g (10.2.0.4)
SQL> @EXP_HR_UK_EMPLOYEE_DETAIL_V.txt
Error 45 initializing SQL*Plus
Internal errorRegards,
SAMHi Robert,
We use eChangeMan for scripts transfer.
The scripts are uploaded into eChangeMan and then sent for approval. Once Approved. The eChangeMan automatically transfers the scripts to specific location on server, from where we execute them.
In one link I found this
Cause: The issue is identified as Bug:3039738. This typically reproduces when SQL script file is on a OCFS filesystem created on shared device (for example, SAN storage).
Fix: The only workaround, until bug is fixed, is to copy the SQL script file to a local disk (in case of Linux, a ext3 filesystem).
But this is the first time I have encountered this error. When i did a vi on script, It looks fine, without any spl characters.
Regards,
SAM -
Hi
We have a big problem, We can't create internal orders, when I run the CREATE INTERNAL ORDER, it finish with ERROR:
Concurrent Manager encountered an error while running SQL*Plus for your concurrent request 134980682.
Review your concurrent request log and/or report output file for more detailed information.
this is the log:
+---------------------------------------------------------------------------+
Purchasing: Version : 12.0.0
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
POCISO module: Create Internal Orders
+---------------------------------------------------------------------------+
Current system time is 26-JUL-2013 09:21:09
+---------------------------------------------------------------------------+
+-----------------------------
| Starting concurrent program execution...
+-----------------------------
+---------------------------------------------------------------------------+
Start of log messages from FND_FILE
+---------------------------------------------------------------------------+
Begin create internal sales order
Updating Req Headers
14 Reqs selected for processing
Top of Fetch Loop
Source Operating Unit: 82
Selecting Currency Code
Currency Code : MXP
Selecting Order Type
Order Type ID:1001
Selecting Price List from Order Type
Deliver To Location Id: 196
Inserting Header : 3908784
Getting the customer id
Getting the customer id: 15334
Unhandled Exception : ORA-01403: no data found
+---------------------------------------------------------------------------+
End of log messages from FND_FILE
+---------------------------------------------------------------------------+
Concurrent Manager encountered an error while running SQL*Plus for your concurrent request 134980682.
Review your concurrent request log and/or report output file for more detailed information.
+---------------------------------------------------------------------------+
Executing request completion options...
Output file size:
78
Output is not being printed because:
The print option has been disabled for this report.
Finished executing request completion options.
+---------------------------------------------------------------------------+
Concurrent request completed
Current system time is 26-JUL-2013 09:21:14
+---------------------------------------------------------------------------+
Some suggestion for resolve it??
Thanks & Regards.In the document 294932.1 Section 4 there are no pre-installation patches or update for OS RedHat LinuxAS4.
When I type echo $LD_ASSUME_KERNEL it doesn't display any value so do I need to set the LD_Assume_Kernal value manually.
If yes, please let me know the path and command to set the kernel value.
Thanks
Amith -
Passing Multiple Parameters to SQL Script from a Shell Script
Hi Friends,
I have SQL script which accepts 6 parameters.
I am calling this from a shell script as shown below:
sqlplus -s ${ORACLE_ID} @${SQLPATH}KORONT_041.sql ${USER_ID} ${PDC} ${item_number} ${KORDC} ${PDCSET} ${last_Updated_in_hours} Out of the six parameters, item_number is not a mandatory parameter.
When i pass all six parameters, there is no issue.
But when i leave item_number blank, i am getting the below error
Enter value for 6:
User requested Interrupt or EOF detected.Based on the error, it seems that the NULL values for item_number is ignored and SQL*PLUS is waiting for one more input from user.
How can i overcome this issue?
Regards,
SreekanthHi,
I am calling the shell script from concurrent program and below is the log file of the concurrent program.
Copyright (c) 1979, 1999, Oracle Corporation. All rights reserved.
KORONT_041_SH module: KORONT - Daily Item Master Update
+---------------------------------------------------------------------------+
Current system time is 29-JUN-2011 10:09:35
+---------------------------------------------------------------------------+
REQUEST_ID: 68510795
USER_ID: 4219
PDC: 85
Item Number:
KORDC: 124
PDCSET: 1100000003
last_updated_in_hours: 24
EMAIL_ID: [email protected],[email protected]
SQLPATH: /e381/oracle/asodev01appl/custom/motont/1.0.0/sql/
RPTDIR: /e381/oracle/asodev01comn/admin/out/ASODEV01_asoprdb2
RPTFILE: o68510795.out
Table truncated.
*Enter value for 6: User requested Interrupt or EOF detected.*
Table truncated.
old 15: AND ic.organization_id = &&4
new 15: AND ic.organization_id = 1100000003
0 rows created.
Input truncated to 9 characters
old 8: AND organization_id = &&4
new 8: AND organization_id = 1100000003
0 rows created.
End of SQL
No record.
+---------------------------------------------------------------------------+
Executing request completion options...
+------------- 1) PRINT -------------+
Printing output file.
Request ID : 68510795
Number of copies : 0
Printer : noprint
+--------------------------------------+
Finished executing request completion options.
+---------------------------------------------------------------------------+
Concurrent request completed successfully
Current system time is 29-JUN-2011 10:09:38
+---------------------------------------------------------------------------+Regards,
Sreekanth -
Segmentation Fault when connecting to SQL*Plus from Applications tier
Hi Everyone -
I am currently in the process of upgrading a client from 11.5.10.2 to 12.1.1 (eventually 12.1.3) on a OEL x86-64 server. I have laid down the software stack and followed all of the requirements as per the Installation manuals and 761566.1. I also have an open SR right now on this issue - but I wanted to see if any of you have ever run into the issue that I am encountering.
When I try to run adadmin/adpatch - I get to the prompt of providing the system user password and the utility simply exits. No errors in adpatch.log or adadmin.log (both are 0 bytes in size).
When I try to connect using SQL*Plus from the applications tier using either:
sqlplus apps/****@SID
sqlplus system/****@SID
I get a Segmentation Fault error. There are also no errors in my alert log file on the database tier. I found this error while attempting to apply the upgrade merge patch.
Has anyone ever seen s Segmentation Fault error? I have search MOS, found a couple of potential solutions - but nothing has solved the issue so far.
Thanks in advance...
Brenna>
Are you on 11.1.0.5.0? Is this the database version?
No, my database tier is 11.2.0.3 (the database version displayed above was the client version running on the Application Tier.
Who is the owner of the application tier files? If it is applmgr user, please make sure you login as that user and source the application env file before running sqlplus -- Please issue "echo $ORACLE_HOME" and "which sqlplus" and post the output here.
My owner of the application tier is oracle. I have sourced the environment using $APPL_TOP/APPSR12Dev1_******.env
[oracle@****** log]$ echo $ORACLE_HOME
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2
[oracle@****** log]$ which sqlplus
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/bin/sqlplus
>
Please relink sqlplus by issuing "$ORACLE_HOME/bin/relink all > relink.txt 2>&1" and check the relink.txt file for any error
A number of errors occur during the relink, here are some of them:
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/bin/genclntsh
/usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(nnfgt.o)' is incompatible with i386 output
/usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o)' is incompatible with i386 output
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/bin/genagtsh /u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libagtsh.so 1.0
/usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(nnfgt.o)' is incompatible with i386 output
/usr/bin/ld: warning: i386:x86-64 architecture of input file `/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o)' is incompatible with i386 output
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(nnfgt.o):(.rodata+0xc8): undefined reference to `nnflboot'
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x8): undefined reference to `nttini'
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x28): undefined reference to `ntzini'
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x68): undefined reference to `ntpini'
/u01/app/oracle/R12Dev1/apps/tech_st/10.1.2/lib/libn10.a(ntcontab.o):(.data+0x88): undefined reference to `ntusini'
collect2: ld returned 1 exit status
Thanks again... -
Learning PL/SQL with SQL plus
I'm looking to teach myself PL/SQL with SQL Plus, it's a works pc so I can not use any other software than SQL plus.
When starting SQL plus I'm asked for a username, password and host string.
I'm taking it the host string is the db I want to connect to and obviously supply the username and password for level of access?
Also what I ideally need is a sample db on my local machine to connect to with SQL plus to learn that way.
Can anyone point me in the right direction please. Any help is greatly appreciated.Use the net8 configuration assistant preferably as it'll get the syntax correct.
Otherwise you copy the sample one up one folder and edit that.
Connection information (SID, Server/IP, port number) you'll have to get off your DBA.
The name at the start of a tnsnames entry is the name that you want to reference the database as, so you can call it FRED if you like.
e.g.
FRED =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(PROTOCOL = TCP)
(HOST = <server name or ip address>)
(PORT = <port>) -- usually 1521 but can differ if more than one instance on the server
(CONNECT_DATA =
(SID = <database SID>) -- the name of the database on the server.
)Once that's set up you can then log onto the database in the following way:
sqlplus <user>/<password>@fred
What happens is that the TNS Listener service (that should be running on your PC) will look up "fred" in the tnsnames.ora file and then use the information from that to make the connection to the server on the correct port and connect you to the actual database on there.
After that.... it's up to you.
:) -
Error when running the OWB process flow from the shell script
Hi,
I am able to deploy the process flow succesfully but when I execute the process flow from the shell script,I am getting the following error.Previously it worked fine.
I had to make some chnage in the IP address,so i had to deploy again.
Connected.
SQL> @/oracle/product/owb92028/owb/rtp/sql/oem_exec_template.sql OWB_RTR LOC_P_REL PROCESS P_W_SOURCE "," ","
Elapsed: 00:00:00.00
Elapsed: 00:00:00.01
Stage 1: Decoding Parameters
| location_name=LOC_P_REL
| task_type=ProcessFlow
| task_name=P_W_SOURCE
Stage 2: Opening Task
declare
ERROR at line 1:
ORA-01422: exact fetch returns more than requested number of rows
ORA-06512: at "OWB_RTR.WB_RT_API_EXEC", line 17
ORA-06512: at "OWB_RTR.WB_RT_API_EXEC", line 137
ORA-06512: at "OWB_RTR.WB_RT_API_EXEC", line 164
ORA-06512: at line 205
Thanks in advance.
VinayHi Kamal and kanakam kolla,
This is just to let you know that,I solved my problem little differently by creating a new location and deployed the process flow.Now my process flow is working fine when i call from the shell script.What i see is that, it does not update properly when we update and redeploy the process flow.So far this is the work arround i could think off and i succesfully tested this.
Thank you Kamal and kanakam kolla,for giving a thought towards my problem.
Thanks
Vinay -
Downloading and installing Oracle (with sql plus) on Windows 7 Professional
Hi,
I got a new laptop which has Windows 7 Professional (64 bit). I intend to download Oracle 10g and would like to install bothe the database and the sql plus in this system.
I would appreciate if somebody could provide me a link to the appropriate database (with sql plus installation capability). Also if available the installation guide.
Thanks in advance.Hello,
Windows 7 Professional (64 bit). I intend to download Oracle 10g and would like to install bothe the database and the sql plusOracle *10g* is not certified on Windows *7*, except with the latest patchset *10.2.0.5*, and its Premium Support ended on the *31st of July 2010*.
You should download Oracle *11.2* which is certified on Windows *7 - 64 bit*.
You'll find the Documentation and Download tabs on the link below:
http://www.oracle.com/technetwork/database/enterprise-edition/overview/index.html
About SQLPlus, it's delivered with Oracle Server and, in *11g*, you can still use it from a DOS box. If you intend to have a Graphical Tool, you should use Oracle SQL Developer instead:
http://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index.html
Hope this help.
Best regards,
Jean-Valentin -
Error 57 initializing SQL*Plus
i am not able to start sql plus. It gives me the below mentioned error message. I did not have any problem when i worked a month back but now when i am going to start again, it gives me this error. In between, the only change i brought into my PC is the installation of Kaspersky Antivirus and doing the full scan?
Error 57 initializing SQL*Plus
Error loading message shared library
thankshick wrote:
i am not able to start sql plus. It gives me the below mentioned error message. I did not have any problem when i worked a month back but now when i am going to start again, it gives me this error. In between, the only change i brought into my PC is the installation of Kaspersky Antivirus and doing the full scan?
Error 57 initializing SQL*Plus
Error loading message shared library
thanksThis error is raised during the early startup processing for sqlplus and is, by nature, rather generic. Since it is raised during initialization, it's quite possible that not all libraries that might be needed for additional details (such as localized error messages) are loaded.
As the only thing you mention has changed is installation of Kaspersky, that suggests it is blocking a required library from being loaded. This error can also be raised when there is insufficient memory available (which would also prevent loading of required libraries, etc).
Here's a simple test you can do to illustrate this (obviously not on a production system, etc!):
$ cd \Oracle\11.2\database\BIN
$ dir /s /b oraclient11.dll
C:\Oracle\11.2\database\BIN\oraclient11.dll
$ rem temporarily rename the Oracle RDBMS Client Library for testing
$ ren oraclient11.dll oraclient11.dll.save
$ rem this will raise error 57 since a required library could not be loaded during initialization
$ sqlplus.exe /nolog
Error 57 initializing SQL*Plus
Error loading message shared library
$ rem be sure to change back!
$ ren oraclient11.dll.save oraclient11.dllRegards,
Mark -
Error 5 Initializing SQL*Plus
Hi, I've Oracle 9.2.0.5 over Solaris 9. I've set NLS_LANG=spanish_spain.WE8ISO8859P15
and when I try to start sqlplus (sqlplus "/as sysdba") I receive the next error:
$ sqlplus "/as sysdba"
Error 5 initializing SQL*Plus
NLS initialization error
I'm getting this error from this morning, when I delete the file $ORACLE_HOME/ocommon/nls/admin/data/lx10006.nlb and I restore the same file but from version 9.2.0.1, may it be the cause?
Any idea? I haven't a copy of this file of version 9.2.05...
Thank you,I only can access to the database if I unset NLS_LANG or if I set NLS_LANG=american_america.WE8ISO8859P1
Maybe you are looking for
-
Outputting error messages in a browser?
Is there a way to output all error messages to some sort of window when viewing a SWF in a browser? I'm working on a game and I'm about to beta test with a few dozen people. They will do this by playing the game in a browser. Sometimes the game crash
-
Does anyone know of a way to get my PODCAST and Email applications to use multiple WLAN connections? I spend most of my day in one of two places, each with a different WLAN, and I'd the phone to have the sense to change WLAN connection as they become
-
''locking as a duplicate - https://support.mozilla.com/en-US/questions/811325'' This only happens on the home page. The drop down appears as soon as the "Bing Web Search" at the top of the page disappears as one scrolls down the page and remains visi
-
Pending excise inv capture and posting
hi, i m doing excise capturing and posting with respect to Purchase Order,so where i can get pending P.O list ,for which i have not captured part1 or part 2.
-
Address Book pic not used for Buddy Icon
Hi there, The buddy icon for everyone I chat with is a default blue globe . . . I know these people, my brother for example, have a photo selected for themselves in their address book. Why is there address book photo not appearing as their buddy icon