HPE GreenLake Administration
- Community Home
- >
- Servers and Operating Systems
- >
- Operating Systems
- >
- Operating System - HP-UX
- >
- Getting a basic Oracle external C procedure to wor...
Operating System - HP-UX
1834142
Members
2271
Online
110064
Solutions
Forums
Categories
Company
Local Language
back
Forums
Discussions
Forums
- Data Protection and Retention
- Entry Storage Systems
- Legacy
- Midrange and Enterprise Storage
- Storage Networking
- HPE Nimble Storage
Discussions
Forums
Discussions
Discussions
Discussions
Forums
Discussions
back
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
- BladeSystem Infrastructure and Application Solutions
- Appliance Servers
- Alpha Servers
- BackOffice Products
- Internet Products
- HPE 9000 and HPE e3000 Servers
- Networking
- Netservers
- Secure OS Software for Linux
- Server Management (Insight Manager 7)
- Windows Server 2003
- Operating System - Tru64 Unix
- ProLiant Deployment and Provisioning
- Linux-Based Community / Regional
- Microsoft System Center Integration
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Discussion Boards
Blogs
Information
Community
Resources
Community Language
Language
Forums
Blogs
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-10-2004 12:11 AM
05-10-2004 12:11 AM
Getting a basic Oracle external C procedure to work
Platform is Oracle 9.2.0.5 64bit and HPUX 11 64bit.
Here is my C code:
cat call_rm.c
#include
char cmd[512];
void call_rm(char *fname)
{
strcpy(cmd,"/usr/bin/rm -f ");
strcat(cmd, fname);
system(cmd);
return;
}
I have placed this file in $ORACLE_HOME/lib.
I use GCC to compile it.
cd $ORACLE_HOME/lib
/usr/local/pa20_64/bin/gcc -c call_rm.c
The nextstep is to run make, but I cannot get it to work:
/usr/local/bin/gmake -f $ORACLE_HOME/rdbms/demo/demo_rdbms.mk extproc_callback SHARED_LIBNAME=call_rm.so OBJS=call_rm.o
cc +DA2.0W +DS2.0 -DSS_64BIT_SERVER -I/u01/app/oracle/product/9.2/rdbms/demo -I/u01/app/oracle/product/9.2/rdbms/public -I/u01/app/oracle/product/9.2/plsql/public -I/u01/app/oracle/product/9.2/network/public -c -I/u01/app/oracle/product/9.2/rdbms/demo -I/u01/app/oracle/product/9.2/rdbms/public -I/u01/app/oracle/product/9.2/plsql/public -I/u01/app/oracle/product/9.2/network/public -I/u01/app/oracle/product/9.2/precomp/public call_rm.c
(Bundled) cc: "call_rm.c", line 3: error 1705: Function prototypes are an ANSI feature.
gmake: *** [call_rm.o] Error 1
Obviously I need to edit $ORACLE_HOME/rdbms/lib/env_rdbms.mk and change the references from cc to gcc.
Do I also need to use gmake?
Here is my C code:
cat call_rm.c
#include
char cmd[512];
void call_rm(char *fname)
{
strcpy(cmd,"/usr/bin/rm -f ");
strcat(cmd, fname);
system(cmd);
return;
}
I have placed this file in $ORACLE_HOME/lib.
I use GCC to compile it.
cd $ORACLE_HOME/lib
/usr/local/pa20_64/bin/gcc -c call_rm.c
The nextstep is to run make, but I cannot get it to work:
/usr/local/bin/gmake -f $ORACLE_HOME/rdbms/demo/demo_rdbms.mk extproc_callback SHARED_LIBNAME=call_rm.so OBJS=call_rm.o
cc +DA2.0W +DS2.0 -DSS_64BIT_SERVER -I/u01/app/oracle/product/9.2/rdbms/demo -I/u01/app/oracle/product/9.2/rdbms/public -I/u01/app/oracle/product/9.2/plsql/public -I/u01/app/oracle/product/9.2/network/public -c -I/u01/app/oracle/product/9.2/rdbms/demo -I/u01/app/oracle/product/9.2/rdbms/public -I/u01/app/oracle/product/9.2/plsql/public -I/u01/app/oracle/product/9.2/network/public -I/u01/app/oracle/product/9.2/precomp/public call_rm.c
(Bundled) cc: "call_rm.c", line 3: error 1705: Function prototypes are an ANSI feature.
gmake: *** [call_rm.o] Error 1
Obviously I need to edit $ORACLE_HOME/rdbms/lib/env_rdbms.mk and change the references from cc to gcc.
Do I also need to use gmake?
2 REPLIES 2
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-10-2004 12:39 AM
05-10-2004 12:39 AM
Re: Getting a basic Oracle external C procedure to work
No worries, found that I can achieve the same task using the PLSQL package:
dbms_backup_restore.deletefile();
Brilliant.
dbms_backup_restore.deletefile();
Brilliant.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-11-2004 06:40 AM
05-11-2004 06:40 AM
Re: Getting a basic Oracle external C procedure to work
Just in case you should need a c function...
I don't know about gcc, but cc requires -Aa for ANSI mode, otherwise it defaults to K&R mode.
I don't know about gcc, but cc requires -Aa for ANSI mode, otherwise it defaults to K&R mode.
"Only he who attempts the absurd is capable of achieving the impossible
The opinions expressed above are the personal opinions of the authors, not of Hewlett Packard Enterprise. By using this site, you accept the Terms of Use and Rules of Participation.
Company
Events and news
Customer resources
© Copyright 2025 Hewlett Packard Enterprise Development LP