oracle中,一个包PKG_OFFER_CFG 下。有三个存储过程,我想修改其中的一个P_COPY_SUBS_PLAN_VER存储过程,而不影响另外的存储过程,应该如何做呢
时间: 2024-03-10 17:46:28 浏览: 32
要修改 `PKG_OFFER_CFG` 包下的 `P_COPY_SUBS_PLAN_VER` 存储过程而不影响其他存储过程,可以按照以下步骤:
1. 找到 `P_COPY_SUBS_PLAN_VER` 存储过程的定义语句,复制到一个文本编辑器中备份。
2. 使用 `DROP PROCEDURE` 语句删除 `P_COPY_SUBS_PLAN_VER` 存储过程。例如:
```
DROP PROCEDURE PKG_OFFER_CFG.P_COPY_SUBS_PLAN_VER;
```
3. 修改备份的存储过程定义语句,按需修改存储过程的代码。
4. 使用修改后的存储过程定义语句重新创建 `P_COPY_SUBS_PLAN_VER` 存储过程。例如:
```
CREATE OR REPLACE PROCEDURE PKG_OFFER_CFG.P_COPY_SUBS_PLAN_VER
AS
BEGIN
-- 修改后的存储过程代码
END;
```
这里使用了 `CREATE OR REPLACE` 语句,可以覆盖已有的同名存储过程。
5. 测试修改后的存储过程,确保它的功能正常。
这样就可以只修改 `PKG_OFFER_CFG` 包下的 `P_COPY_SUBS_PLAN_VER` 存储过程而不影响其他存储过程了。
相关问题
catkin_create_pkg 自定义ROS包名 roscpp rospy std_msgs这个命令中opencv的以来是什么
在 `catkin_create_pkg` 命令中,您可以指定 ROS 包的名称、所需的依赖项和其他参数。对于参数 `DEPENDENCIES`,您可以指定 ROS 包所需的其他依赖项,例如 `roscpp`、`rospy` 和 `std_msgs`。
`roscpp` 是一个 ROS C++ 客户端库,允许您编写使用 C++ 编写的 ROS 节点。
`rospy` 是一个 ROS Python 客户端库,允许您编写使用 Python 编写的 ROS 节点。
`std_msgs` 是一个 ROS 中常用的消息类型包,包含了一些标准的消息定义,例如字符串、整数和浮点数等。
要添加 OpenCV 作为依赖项,您可以在 `catkin_create_pkg` 命令中的 `DEPENDENCIES` 参数中添加 `opencv`。例如:
```
catkin_create_pkg <package_name> roscpp rospy std_msgs opencv
```
这将创建一个名为 `<package_name>` 的自定义 ROS 包,并将 `roscpp`、`rospy`、`std_msgs` 和 `opencv` 添加为其依赖项之一。
请注意,这只是创建包时指定依赖项的一种方法。要在现有的 ROS 包中添加 OpenCV 依赖项,请参考之前我给出的在 `package.xml` 和 `CMakeLists.txt` 文件中添加 OpenCV 依赖项的步骤。
希望这可以回答您的问题。如果您还有其他疑问,请随时提问。
使用cmake写一个可以被其他cmake文件find_package的包
要编写一个可以被其他CMake文件find_package的包,需要执行以下步骤:
1. 创建一个包含代码的库或二进制文件,并将其安装到系统上。
2. 创建一个CMake配置文件,该文件定义了包的版本号、库/二进制文件路径等信息,并将其安装到系统上。
3. 创建一个CMake模块文件,该文件包含一个find_package函数,用于查找并加载CMake配置文件。
下面是更详细的步骤:
1. 创建库或二进制文件
在CMakeLists.txt中定义库或二进制文件,例如:
```
add_library(mylib SHARED mylib.cpp) # 创建一个共享库
install(TARGETS mylib LIBRARY DESTINATION lib) # 安装该库到系统上
```
2. 创建CMake配置文件
创建一个名为`mylib-config.cmake.in`的文件,该文件包含了包的版本号、库文件路径等信息。注意,该文件中需要使用`@VAR@`的形式来引用变量,CMake将在安装时将这些变量替换为实际值。例如:
```
@PACKAGE_INIT@
set(MYLIB_VERSION_MAJOR 1)
set(MYLIB_VERSION_MINOR 0)
set(MYLIB_VERSION_PATCH 0)
set(MYLIB_VERSION "${MYLIB_VERSION_MAJOR}.${MYLIB_VERSION_MINOR}.${MYLIB_VERSION_PATCH}")
set(MYLIB_INCLUDE_DIRS "${CMAKE_INSTALL_PREFIX}/include")
set(MYLIB_LIBRARIES "${CMAKE_INSTALL_PREFIX}/lib/libmylib.so")
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/mylib-config.cmake.in
${CMAKE_CURRENT_BINARY_DIR}/mylib-config.cmake @ONLY)
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mylib-config.cmake
DESTINATION lib/cmake/mylib)
```
该文件中使用了`@PACKAGE_INIT@`宏来加载CMake的基本配置信息。
3. 创建CMake模块文件
创建一个名为`FindMylib.cmake`的文件,该文件包含了一个find_package函数,用于查找并加载CMake配置文件。例如:
```
find_package(PkgConfig)
pkg_check_modules(PC_MYLIB QUIET mylib)
find_path(MYLIB_INCLUDE_DIR mylib.h
HINTS ${PC_MYLIB_INCLUDE_DIRS} ${CMAKE_INSTALL_PREFIX}/include)
find_library(MYLIB_LIBRARY NAMES mylib
HINTS ${PC_MYLIB_LIBDIR} ${CMAKE_INSTALL_PREFIX}/lib)
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Mylib
REQUIRED_VARS MYLIB_INCLUDE_DIR MYLIB_LIBRARY
VERSION_VAR MYLIB_VERSION)
if(Mylib_FOUND)
set(MYLIB_LIBRARIES ${MYLIB_LIBRARY})
set(MYLIB_INCLUDE_DIRS ${MYLIB_INCLUDE_DIR})
endif()
mark_as_advanced(MYLIB_INCLUDE_DIR MYLIB_LIBRARY)
```
该文件中使用了`find_package_handle_standard_args`函数来检查包是否已找到,并将结果保存在`Mylib_FOUND`变量中。此外,还定义了`MYLIB_INCLUDE_DIRS`和`MYLIB_LIBRARIES`变量,用于在其他CMake文件中引用。
4. 安装包
在CMakeLists.txt中添加以下内容,用于安装CMake配置文件和模块文件:
```
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mylib-config.cmake
DESTINATION lib/cmake/mylib)
install(FILES FindMylib.cmake
DESTINATION lib/cmake/mylib)
```
5. 使用包
在其他CMake文件中,可以使用`find_package`函数来查找并加载该包,例如:
```
find_package(Mylib REQUIRED)
include_directories(${MYLIB_INCLUDE_DIRS})
target_link_libraries(myapp ${MYLIB_LIBRARIES})
```
注意,上述代码中的`Mylib`是指在FindMylib.cmake中定义的包名,而不是库/二进制文件的名称。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)