oracle怎么编译包体 oracle创建包体

如何在 Oracle Solaris 11 上编译和运行 MPI 程序

要使用 OMPT,需要在系统上安装和运行 Oracle Solaris 11。除了安装过程中使用的 root 权限之外,运行任何 OMPT 实用程序通常无需任何其他特殊权限。

成都创新互联公司从2013年开始,先为桐乡等服务建站,桐乡等地企业,进行企业商务咨询服务。为桐乡企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

如果您想编译 MPI 程序,则需要安装 Oracle Solaris Studio 12.1 或更高版本。在运行 MPI 程序的节点集群上,可以在其中一个节点上安装 Oracle Solaris Studio 并仅在该节点上编译 openmpi-15 程序包,但在所有节点上都安装该程序包。

要获取 OMPT,请安装 openmpi-15 程序包,该程序包由一个映像包管理系统 (IPS) 信息库托管,您的系统上应配置有该信息库。要验证是否配置了 IPS 信息库,请运行 pkg publisher 命令。

如果尚未 配置 IPS 信息库,请在尝试添加 openmpi-15 程序包之前配置它。否则,程序包添加将失败。

系统应配置了网络访问(如果是通过网络访问 IPS 信息库)或本地配置的从同一系统提供服务的 IPS 信息库。

本文示例使用了本地配置的 IPS 信息库,如 pkg publisher 命令的以下输出所示,该输出指示 IPS 信息库通过 HTTP 托管在 localhost 上。

root@solarix:/usr/share/distro_const# pkg publisher

PUBLISHER TYPE STATUS URI

solaris origin online

验证配置了信息库之后,以 root 身份运行 pkg install openmpi-15 命令添加该分发构造器程序包。然后从 IPS 信息库下载 openmpi-15 程序包并立即安装。

pkg install openmpi-15 命令显示进程的状态,如清单 1 所示,这样便于观察进度。

清单 1:pkg install openmpi-15 命令的输出

root@solarix:~# pkg install openmpi-15

Creating Plan

Packages to install: 2

Create boot environment: No

DOWNLOAD PKGS FILES XFER (MB)

service/picl 0/2 0/1430 0.0/11.9[K

developer/openmpi-15 1/2 1430/1430 11.9/11.9[K

Completed 2/2 1430/1430 11.9/11.9[K

PHASE ACTIONS

Install Phase 1639/1639

PHASE ITEMS

Package State Update Phase 1/2

Package State Update Phase 2/2

Image State Update Phase 1/2

Image State Update Phase 2/2

PHASE ITEMS

Reading Existing Index 1/8

Reading Existing Index 5/8

Reading Existing Index 8/8

Indexing Packages 2/2

安装完 openmpi-15 程序包之后,只需在 PATH 变量中包括 /usr/openmpi/ompi-15/bin,然后就一切准备妥当。

使用 OMPT 编译 MPI 程序

使用 OMPT 编译 MPI 程序有两种方式。您可以使用程序包中包含的编译器包装器(mpicc、mpiCC、mpif77 和 mpif90)或者直接调用编译器。

因为需要包含的 include、library 和 run 路径,建议采用第一种方法。包装器将其不了解的所有选项都传给 Oracle Solaris Studio 编译器,因此您应能够使用包装器实用程序替换 makefile 中编译器的所有实例。

以清单 2 作为示例 MPI 程序,可以使用一行命令编译程序:

mpicc hello.c -o hello.x

清单 2:示例 hello.c 程序

#include stdio.h

#include mpi.h

int main(int argc, char **argv) {

int np, me;

MPI_Init(argc,argv);

MPI_Comm_size(MPI_COMM_WORLD,np);

MPI_Comm_rank(MPI_COMM_WORLD,me);

printf("hello from %d of %d\n", me, np);

MPI_Finalize();

return 0;

}

还可以执行两阶段的编译和链接:

mpicc -c hello.c

mpicc hello.o -o hello.x

如果要直接执行编译器而不使用包装器,可以通过向包装器提供 -showme 选项来确定包装器使用的选项:

mpicc -showme hello.c -o hello.x

使用 OMPT 运行 MPI 程序

编译完可执行文件并与 OMPT 库链接之后,可以单独运行该程序或使用并行作业启动器实用程序 mpirun 来运行。

要单独运行程序,只需运行该可执行文件,就跟普通非并行可执行文件一样。但是,随后将由该程序来负责调用相应的 MPI API(如 MPI_Comm_spawn 或 MPI_Comm_spawn_multiple)来生成 MPI 作业的其他进程。

要一开始就创建运行多个进程的 MPI 作业,请使用 mpirun 实用程序。例如,如果您要使用总共 8 个进程在 2 个节点上运行我们的示例 MPI 程序,可以使用以下命令:

mpirun -np 8 -host hostname1,hostname2 hello.x

有几个选项可以与 mpirun 一起用来控制绑定、布局、输出重定向等等。通过执行 mpirun -h 或 man mpirun 可以获取有关这些选项的更多信息。

oracle中自定义的函数怎么编译

可在第三方软件中,如pl/sql中编译。

1、打开pl/sql软件并登录到指定数据库。

2、点击左上方像纸片的按钮,然后点击“sql窗口”

3、在弹出窗口中编写自定义函数。

4、编写完毕后,直接点击左上角像齿轮的按钮(即执行按钮),就可以编译了。

oracle package body怎么执行啊?

包只是作为 程序的一个载体而已,你要运行,当然是去调用它!

包里面可以包含函数、过程等,你可以开发程序时候调用包里面的这些程序!没有听说过包怎么运行的道理!

就像电视机(包)可以用来看电视,但是你不去打开它(调用包),它就没有作用!

楼下的明显误导别人啊,包何来参数之说?只有包里面的程序才有参数,调用包里面过程的方法如下:

begin

exec 包名.过程名();

end;

函数的调用就不用我写了吧!

求看看这个ORACLE包体编译的时候提示必须声明标识符emp,我该怎么声明它呀

emp表是oracle安装包里的example,它属于scott,确认一下这个表是否存在:

select owner,object_type from dba_objects where object_name='EMP';

如果这个表存在,出现这个错误,有以下几个原因:

1.这个包的所有者没有对emp表的select权限

2.虽然有权限,但在引用它的时候必需明确这个表的schema,也就是上面那个查询的owner,你应该用scott.emp

Oracle 怎么根据包头生成包体

包头

create or replace package package_name is

prcedure p1;

prcedure p2(v1 in char, v2 in date);

end package_name;

包体

create or replace package body package_name is

prcedure p1 is

begin

--代码省略

end p1;

prcedure p2(v1 in char, v2 in date) is

begin

--代码省略

end p2;

end package_name;

oracle数据库如何编译sqc文件

//通过编写的连接类创建一个连接

dbconn db = new dbconn();

Connection con1 = db.conn;

String callSQL1 = new String();

ResultSet rs1 = null;

//创建一个CallableStatement变量st1来调用存储过程信息

CallableStatement st1 = null;

try {

st1 = con1.prepareCall("{ call p(?,?,?,?) }");

st1.setString(1, "参数1");

st1.setString(2, "参数2");

st1.setString(3, "参数3");

st1.registerOutParameter(4,Types.INTEGER); //此处4 代表第一个"?" 则表示存储过程返回的值 这里要注意Types的类型,当需要有返回值时

st1.execute();

System.out.println(st1.getInt(4));//输出存储过程的返回值,当有返回值时

} catch (Exception error) {

try {

con1.rollback(); //操作不成功则回退

} catch (Exception ex9) {

ex9.printStackTrace();

}

out.print("系统出错" + error.getMessage());

} finally {

try {

if (st1 != null) {

st1.close();

}

} catch (Exception error) {

}

db.disconnect();

}


文章名称:oracle怎么编译包体 oracle创建包体
当前路径:http://azwzsj.com/article/hjgpic.html