오라클 함수 sysdate도 궁금합니다.

알림
|
X

페이지 정보

작성자 pinn 1.♡.18.2
작성일 2024.11.01 16:27
44 조회
0 추천
글쓰기

본문

오라클에서 자주 사용하는 sysdate에 대한 질문입니다.

왜 함수인데 호출 시 sysdate() 처럼 인자 괄호를 안붙일까요?


어떤분은 함수가 아니라 의사컬럼이기 때문이라고도 하는데 공식 오라클 도큐먼트에는 함수라고 명시되어 있는걸 보니 아닌거 같구요.

괄호를 안붙히는 정확한 자료를 찾을 수 없네요.


예상컨데 자바스크립트의 null을 console.log(typeof null)이라고 실행하면 object라고 찍히는 미쳐 고치지 못한 실수 혹은 굳어져버린 관습과 비슷한 상황일까요?


혹시 정확한 이유를 아시면 좋은 답변 부탁드립니다.



댓글 4 / 1 페이지

코파니코피나님의 댓글

작성자 no_profile 코파니코피나 (211.♡.210.215)
작성일 16:50
제가 배웠을 땐 오래 전이라 요즘엔 어떤지 모르겠습니다만
(제가 관련 일은 손 놓은지 오래라...ㅠㅠ)
함수라고 하긴 하는데 임시테이블에 존재하는 sysdate 칼럼(혹은 필드)라고 배웠던거 같아요.

pinn님의 댓글의 댓글

대댓글 작성자 pinn (1.♡.18.2)
작성일 17:04
@코파니코피나님에게 답글 네 저도 비슷한 자료들을 확인해봐서 그런게 아닐까도 했는데 또 공식 도큐먼트에는 명확히 함수라고 적혀있네요;ㅠ
알려주신 부분으로 더 검색해보겠습니다.

김링크님의 댓글

작성자 김링크 (210.♡.105.1)
작성일 16:52
언어마다 문법이 다르기 때문에 함수라고 무조건 다 괄호가 붙는건 아닙니다.

아래가 오라클 문서인데 다른 함수들도 이것저것 클릭한 다음 입력 문자열을 어떻게 파싱하는지 보시면
SYSDATE와 다른 함수들간의 차이를 보실 수 있을거에요
참고로 SYSDATE외에도 변수를 입력하지 않는 다른 함수들도 괄호는 안붙습니다.
https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/SYSDATE.html

pinn님의 댓글의 댓글

대댓글 작성자 pinn (1.♡.18.2)
작성일 17:08
@김링크님에게 답글 넵 언어에 따라 괄호가 없는 함수 표현들이 있지요.
질문에는 다 안적었지만 제가 궁금했던건
오라클 함수를 호출할 때 정확히 괄호에 대한 규칙이 있나해서였습니다.

create or replace function test
 return number
is
begin
    return 100;
end test;
/

select test, test() from dual;

더욱이 이렇게 테스트해보면 사용자 함수에는 괄호를 붙여도 되고 안붙여도 되는데 sysdate는 붙이면 에러가 나서 어떤 규칙이 있는건가 해서 질문했습니다.

알려주신 링크에는 "The function requires no arguments." 문장 말고는 괄호 표시 유무에 대한 이야기가 없어서 여전히 헷갈리네요.
글쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색