用于开发和生产的存储过程中的不同模式名称
Different schema names in stored procedures for development and production
模式名称在开发环境中为dev,在生产环境中为prod。当使用开发模式在开发中创建存储过程时,将此过程迁移到生产环境的方法应该是什么。下面是创建的示例过程,在将 SELECT 语句中的模式名称更改为 prod 之前将其移至生产环境的最佳(理想)方法是什么。
CREATE OR REPLACE PROCEDURE GET_EMPLOYEES(
DEPT_CD IN VARCHAR2(3),
RESULT_SET OUT SYS_REFCURSOR) AS
BEGIN
OPEN RESULT_SET FOR SELECT * FROM DEV.EMPLOYEE WHERE DEPT=DEPT_CD;
END
END GET_EMPLOYEES;
将从UI调用此过程以显示UI中的数据。在 UI 中,同样的问题正在通过使用配置文件来处理。请赐教移动存储过程的方法应该是什么。
我已搜索但找不到任何解决方案。
what should be the approach for moving stored procedures
不要在代码中引用架构名称。
如果 GET_EMPLOYEES 归 DEV 所有,则根本不需要包含架构。
如果过程属于不同的模式,则为 EMPLOYEE 创建一个同义词 table;在开发中,同义词将指向 DEV.EMPLOYEE,而在生产环境中,同义词将指向 PROD.EMPLOYEE。
Schema name is dev in development and prod in production environment
顺便说一句,让我们指出这是一种不好的做法。我记得二十年前不得不与这样配置的环境搏斗。当时很痛,现在也很痛。但至少在过去我们不知道更好。现在没有理由这样做,除非我们在生产数据库中的单独模式下进行开发(这是不可原谅的)。
最佳做法是在所有环境中保持架构名称相同。如果那不可能,您可以随时使用 alter session set current_schema=schema_name
模式名称在开发环境中为dev,在生产环境中为prod。当使用开发模式在开发中创建存储过程时,将此过程迁移到生产环境的方法应该是什么。下面是创建的示例过程,在将 SELECT 语句中的模式名称更改为 prod 之前将其移至生产环境的最佳(理想)方法是什么。
CREATE OR REPLACE PROCEDURE GET_EMPLOYEES(
DEPT_CD IN VARCHAR2(3),
RESULT_SET OUT SYS_REFCURSOR) AS
BEGIN
OPEN RESULT_SET FOR SELECT * FROM DEV.EMPLOYEE WHERE DEPT=DEPT_CD;
END
END GET_EMPLOYEES;
将从UI调用此过程以显示UI中的数据。在 UI 中,同样的问题正在通过使用配置文件来处理。请赐教移动存储过程的方法应该是什么。 我已搜索但找不到任何解决方案。
what should be the approach for moving stored procedures
不要在代码中引用架构名称。
如果 GET_EMPLOYEES 归 DEV 所有,则根本不需要包含架构。
如果过程属于不同的模式,则为 EMPLOYEE 创建一个同义词 table;在开发中,同义词将指向 DEV.EMPLOYEE,而在生产环境中,同义词将指向 PROD.EMPLOYEE。
Schema name is dev in development and prod in production environment
顺便说一句,让我们指出这是一种不好的做法。我记得二十年前不得不与这样配置的环境搏斗。当时很痛,现在也很痛。但至少在过去我们不知道更好。现在没有理由这样做,除非我们在生产数据库中的单独模式下进行开发(这是不可原谅的)。
最佳做法是在所有环境中保持架构名称相同。如果那不可能,您可以随时使用 alter session set current_schema=schema_name