454: END LOOP;
455: X_expr := 'ROUND('||X_expr||',6)';
456: X_sql_stmt := 'select '||X_expr||' from dual';
457:
458: IF (dbms_sql.is_open(X_cur)) THEN
459: dbms_sql.close_cursor(X_cur);
460: END IF;
461:
462: X_cur := dbms_sql.open_cursor;
455: X_expr := 'ROUND('||X_expr||',6)';
456: X_sql_stmt := 'select '||X_expr||' from dual';
457:
458: IF (dbms_sql.is_open(X_cur)) THEN
459: dbms_sql.close_cursor(X_cur);
460: END IF;
461:
462: X_cur := dbms_sql.open_cursor;
463: dbms_sql.parse(X_cur, X_sql_stmt, 0);
458: IF (dbms_sql.is_open(X_cur)) THEN
459: dbms_sql.close_cursor(X_cur);
460: END IF;
461:
462: X_cur := dbms_sql.open_cursor;
463: dbms_sql.parse(X_cur, X_sql_stmt, 0);
464:
465: FOR j IN 1..calc_table.count LOOP
466: IF (calc_table(j).tech_parm_name IS NOT NULL) AND
459: dbms_sql.close_cursor(X_cur);
460: END IF;
461:
462: X_cur := dbms_sql.open_cursor;
463: dbms_sql.parse(X_cur, X_sql_stmt, 0);
464:
465: FOR j IN 1..calc_table.count LOOP
466: IF (calc_table(j).tech_parm_name IS NOT NULL) AND
467: (INSTR(X_sql_stmt, ':TPM'||j) <> 0) THEN
464:
465: FOR j IN 1..calc_table.count LOOP
466: IF (calc_table(j).tech_parm_name IS NOT NULL) AND
467: (INSTR(X_sql_stmt, ':TPM'||j) <> 0) THEN
468: DBMS_SQL.BIND_VARIABLE(X_cur,':TPM'||j, calc_table(j).value);
469: END IF;
470: END LOOP;
471:
472: dbms_sql.define_column(X_cur, 1, X_expr, 100);
468: DBMS_SQL.BIND_VARIABLE(X_cur,':TPM'||j, calc_table(j).value);
469: END IF;
470: END LOOP;
471:
472: dbms_sql.define_column(X_cur, 1, X_expr, 100);
473: X_row := dbms_sql.execute(X_cur);
474: IF (dbms_sql.fetch_rows(X_cur) > 0) THEN
475: dbms_sql.column_value(X_cur, 1, X_value);
476: calc_table(i).value := X_value;
469: END IF;
470: END LOOP;
471:
472: dbms_sql.define_column(X_cur, 1, X_expr, 100);
473: X_row := dbms_sql.execute(X_cur);
474: IF (dbms_sql.fetch_rows(X_cur) > 0) THEN
475: dbms_sql.column_value(X_cur, 1, X_value);
476: calc_table(i).value := X_value;
477: END IF;
470: END LOOP;
471:
472: dbms_sql.define_column(X_cur, 1, X_expr, 100);
473: X_row := dbms_sql.execute(X_cur);
474: IF (dbms_sql.fetch_rows(X_cur) > 0) THEN
475: dbms_sql.column_value(X_cur, 1, X_value);
476: calc_table(i).value := X_value;
477: END IF;
478:
471:
472: dbms_sql.define_column(X_cur, 1, X_expr, 100);
473: X_row := dbms_sql.execute(X_cur);
474: IF (dbms_sql.fetch_rows(X_cur) > 0) THEN
475: dbms_sql.column_value(X_cur, 1, X_value);
476: calc_table(i).value := X_value;
477: END IF;
478:
479: dbms_sql.close_cursor(X_cur);
475: dbms_sql.column_value(X_cur, 1, X_value);
476: calc_table(i).value := X_value;
477: END IF;
478:
479: dbms_sql.close_cursor(X_cur);
480:
481: END IF;
482: EXCEPTION
483: WHEN OTHERS THEN
480:
481: END IF;
482: EXCEPTION
483: WHEN OTHERS THEN
484: IF (dbms_sql.is_open(X_cur)) THEN
485: dbms_sql.close_cursor(X_cur);
486: END IF;
487: fnd_msg_pub.add_exc_msg ('GMD_TECH_PARAMS', 'CALCULATE_EXPR');
488: END;
481: END IF;
482: EXCEPTION
483: WHEN OTHERS THEN
484: IF (dbms_sql.is_open(X_cur)) THEN
485: dbms_sql.close_cursor(X_cur);
486: END IF;
487: fnd_msg_pub.add_exc_msg ('GMD_TECH_PARAMS', 'CALCULATE_EXPR');
488: END;
489: END LOOP;